diff --git a/.github/workflows/qc_checks.yaml b/.github/workflows/qc_checks.yaml
index 2d98aacd989a..37c28301eaf3 100644
--- a/.github/workflows/qc_checks.yaml
+++ b/.github/workflows/qc_checks.yaml
@@ -551,6 +551,13 @@ jobs:
token: ${{ secrets.CODECOV_TOKEN }}
slug: inventree/InvenTree
flags: pui
+ - name: Upload bundler info
+ env:
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
+ run: |
+ cd src/frontend
+ yarn install
+ yarn run build
platform_ui_build:
name: Build - UI Platform
diff --git a/.github/workflows/scorecard.yaml b/.github/workflows/scorecard.yaml
index 7088be1b44c3..20424324c1cc 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@4dd16135b69a43b6c8efb853346f8437d92d3c93 # v3.26.6
+ uses: github/codeql-action/upload-sarif@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7
with:
sarif_file: results.sarif
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 335cc9a67398..830889fb4447 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -9,7 +9,7 @@
{
"label": "worker",
"type": "shell",
- "command": "invoke int.worker",
+ "command": "invoke worker",
"problemMatcher": [],
},
{
diff --git a/codecov.yml b/codecov.yml
index 79d066e93bd2..a9544d9875b7 100644
--- a/codecov.yml
+++ b/codecov.yml
@@ -27,3 +27,11 @@ flag_management:
statuses:
- type: project
target: 45%
+
+comment:
+ require_bundle_changes: True
+ bundle_change_threshold: "1Kb"
+
+bundle_analysis:
+ warning_threshold: "5%"
+ status: "informational"
diff --git a/contrib/container/dev-docker-compose.yml b/contrib/container/dev-docker-compose.yml
index 94e72abfc335..54636da3d56a 100644
--- a/contrib/container/dev-docker-compose.yml
+++ b/contrib/container/dev-docker-compose.yml
@@ -56,7 +56,7 @@ services:
inventree-dev-worker:
image: inventree-dev-image
build: *build_config
- command: invoke int.worker
+ command: invoke worker
depends_on:
- inventree-dev-server
volumes:
diff --git a/contrib/container/docker-compose.yml b/contrib/container/docker-compose.yml
index 93440934dbd2..6a0b001f8bf4 100644
--- a/contrib/container/docker-compose.yml
+++ b/contrib/container/docker-compose.yml
@@ -83,7 +83,7 @@ services:
# If you wish to specify a particular InvenTree version, do so here
image: inventree/inventree:${INVENTREE_TAG:-stable}
container_name: inventree-worker
- command: invoke int.worker
+ command: invoke worker
depends_on:
- inventree-server
env_file:
diff --git a/docs/docs/demo.md b/docs/docs/demo.md
index 7d097fca25e1..d404c7dd7913 100644
--- a/docs/docs/demo.md
+++ b/docs/docs/demo.md
@@ -16,6 +16,7 @@ The demo instance has a number of user accounts which you can use to explore the
| Username | Password | Staff Access | Enabled | Description |
| -------- | -------- | ------------ | ------- | ----------- |
+| noaccess | youshallnotpass | No | Yes | Can login, but has no permissions |
| allaccess | nolimits | No | Yes | View / create / edit all pages and items |
| reader | readonly | No | Yes | Can view all pages but cannot create, edit or delete database records |
| engineer | partsonly | No | Yes | Can manage parts, view stock, but no access to purchase orders or sales orders |
diff --git a/docs/docs/extend/plugins/panel.md b/docs/docs/extend/plugins/panel.md
index f91c175ab121..d19c56847542 100644
--- a/docs/docs/extend/plugins/panel.md
+++ b/docs/docs/extend/plugins/panel.md
@@ -4,6 +4,12 @@ title: Panel Mixin
## PanelMixin
+!!! warning "Legacy User Interface"
+ This plugin mixin class is designed specifically for the the *legacy* user interface (which is rendered on the server using django templates). The new user interface (which is rendered on the client using React) does not support this mixin class. Instead, refer to the new [User Interface Mixin](./ui.md) class.
+
+!!! warning "Deprecated Class"
+ This mixin class is considered deprecated, and will be removed in the 1.0.0 release.
+
The `PanelMixin` enables plugins to render custom content to "panels" on individual pages in the web interface.
Most pages in the web interface support multiple panels, which are selected via the sidebar menu on the left side of the screen:
diff --git a/docs/docs/extend/plugins/ui.md b/docs/docs/extend/plugins/ui.md
new file mode 100644
index 000000000000..33b58faabeb6
--- /dev/null
+++ b/docs/docs/extend/plugins/ui.md
@@ -0,0 +1,102 @@
+---
+title: User Interface Mixin
+---
+
+## User Interface Mixin
+
+The *User Interface* mixin class provides a set of methods to implement custom functionality for the InvenTree web interface.
+
+### Enable User Interface Mixin
+
+To enable user interface plugins, the global setting `ENABLE_PLUGINS_INTERFACE` must be enabled, in the [plugin settings](../../settings/global.md#plugin-settings).
+
+## Plugin Context
+
+When rendering certain content in the user interface, the rendering functions are passed a `context` object which contains information about the current page being rendered. The type of the `context` object is defined in the `PluginContext` file:
+
+{{ includefile("src/frontend/src/components/plugins/PluginContext.tsx", title="Plugin Context", fmt="javascript") }}
+
+## Custom Panels
+
+Many of the pages in the InvenTree web interface are built using a series of "panels" which are displayed on the page. Custom panels can be added to these pages, by implementing the `get_custom_panels` method:
+
+::: plugin.base.integration.UserInterfaceMixin.UserInterfaceMixin.get_custom_panels
+ options:
+ show_bases: False
+ show_root_heading: False
+ show_root_toc_entry: False
+ show_sources: True
+ summary: False
+ members: []
+
+The custom panels can display content which is generated either on the server side, or on the client side (see below).
+
+### Server Side Rendering
+
+The panel content can be generated on the server side, by returning a 'content' attribute in the response. This 'content' attribute is expected to be raw HTML, and is rendered directly into the page. This is particularly useful for displaying static content.
+
+Server-side rendering is simple to implement, and can make use of the powerful Django templating system.
+
+Refer to the [sample plugin](#sample-plugin) for an example of how to implement server side rendering for custom panels.
+
+**Advantages:**
+
+- Simple to implement
+- Can use Django templates to render content
+- Has access to the full InvenTree database, and content not available on the client side (via the API)
+
+**Disadvantages:**
+
+- Content is rendered on the server side, and cannot be updated without a page refresh
+- Content is not interactive
+
+### Client Side Rendering
+
+The panel content can also be generated on the client side, by returning a 'source' attribute in the response. This 'source' attribute is expected to be a URL which points to a JavaScript file which will be loaded by the client.
+
+Refer to the [sample plugin](#sample-plugin) for an example of how to implement client side rendering for custom panels.
+
+#### Panel Render Function
+
+The JavaScript file must implement a `renderPanel` function, which is called by the client when the panel is rendered. This function is passed two parameters:
+
+- `target`: The HTML element which the panel content should be rendered into
+- `context`: A dictionary of context data which can be used to render the panel content
+
+
+**Example**
+
+```javascript
+export function renderPanel(target, context) {
+ target.innerHTML = "
Hello, world!
";
+}
+```
+
+#### Panel Visibility Function
+
+The JavaScript file can also implement a `isPanelHidden` function, which is called by the client to determine if the panel is displayed. This function is passed a single parameter, *context* - which is the same as the context data passed to the `renderPanel` function.
+
+The `isPanelHidden` function should return a boolean value, which determines if the panel is displayed or not, based on the context data.
+
+If the `isPanelHidden` function is not implemented, the panel will be displayed by default.
+
+**Example**
+
+```javascript
+export function isPanelHidden(context) {
+ // Only visible for active parts
+ return context.model == 'part' && context.instance?.active;
+}
+```
+
+## Sample Plugin
+
+A sample plugin which implements custom user interface functionality is provided in the InvenTree source code:
+
+::: plugin.samples.integration.user_interface_sample.SampleUserInterfacePlugin
+ options:
+ show_bases: False
+ show_root_heading: False
+ show_root_toc_entry: False
+ show_source: True
+ members: []
diff --git a/docs/docs/faq.md b/docs/docs/faq.md
index 17cfdf84fe9e..d8b51ecac651 100644
--- a/docs/docs/faq.md
+++ b/docs/docs/faq.md
@@ -107,7 +107,7 @@ The background worker process must be started separately to the web-server appli
From the top-level source directory, run the following command from a separate terminal, while the server is already running:
```
-invoke int.worker
+invoke worker
```
!!! info "Supervisor"
diff --git a/docs/docs/settings/global.md b/docs/docs/settings/global.md
index d2ecaf44e400..5c4f4b9f5a56 100644
--- a/docs/docs/settings/global.md
+++ b/docs/docs/settings/global.md
@@ -208,7 +208,6 @@ Refer to the [return order settings](../order/return_order.md#return-order-setti
### Plugin Settings
-
| Name | Description | Default | Units |
| ---- | ----------- | ------- | ----- |
{{ globalsetting("PLUGIN_ON_STARTUP") }}
@@ -218,3 +217,4 @@ Refer to the [return order settings](../order/return_order.md#return-order-setti
{{ globalsetting("ENABLE_PLUGINS_APP") }}
{{ globalsetting("ENABLE_PLUGINS_SCHEDULE") }}
{{ globalsetting("ENABLE_PLUGINS_EVENTS") }}
+{{ globalsetting("ENABLE_PLUGINS_INTERFACE") }}
diff --git a/docs/docs/start/bare_dev.md b/docs/docs/start/bare_dev.md
index 1e02469c635e..51324570b9d5 100644
--- a/docs/docs/start/bare_dev.md
+++ b/docs/docs/start/bare_dev.md
@@ -52,7 +52,7 @@ source ./env/bin/activate
### Start Background Worker
```
-(env) invoke int.worker
+(env) invoke worker
```
This will start the background process manager in the current shell.
diff --git a/docs/docs/start/config.md b/docs/docs/start/config.md
index 5653b8a65906..0fa4cf1af868 100644
--- a/docs/docs/start/config.md
+++ b/docs/docs/start/config.md
@@ -26,7 +26,7 @@ The InvenTree server tries to locate the `config.yaml` configuration file on sta
The configuration file *template* can be found on [GitHub]({{ sourcefile("src/backend/InvenTree/config_template.yaml") }}), and is shown below:
-{{ includefile("src/backend/InvenTree/config_template.yaml", "Configuration File Template", format="yaml") }}
+{{ includefile("src/backend/InvenTree/config_template.yaml", "Configuration File Template", fmt="yaml") }}
!!! info "Template File"
The default configuration file (as defined by the template linked above) will be copied to the specified configuration file location on first run, if a configuration file is not found in that location.
diff --git a/docs/docs/start/docker_install.md b/docs/docs/start/docker_install.md
index 489e90489824..1f9d11942a4f 100644
--- a/docs/docs/start/docker_install.md
+++ b/docs/docs/start/docker_install.md
@@ -247,7 +247,7 @@ index 8adee63..dc3993c 100644
- image: inventree/inventree:${INVENTREE_TAG:-stable}
+ image: inventree/inventree:${INVENTREE_TAG:-stable}-custom
+ pull_policy: never
- command: invoke int.worker
+ command: invoke worker
depends_on:
- inventree-server
```
diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml
index 059a7fb10bae..b9d4fdd137ca 100644
--- a/docs/mkdocs.yml
+++ b/docs/mkdocs.yml
@@ -213,6 +213,7 @@ nav:
- Schedule Mixin: extend/plugins/schedule.md
- Settings Mixin: extend/plugins/settings.md
- URL Mixin: extend/plugins/urls.md
+ - User Interface Mixin: extend/plugins/ui.md
- Validation Mixin: extend/plugins/validation.md
- Machines:
- Overview: extend/machines/overview.md
diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py
index 179bbd692cc8..d7f0ffa89ba6 100644
--- a/src/backend/InvenTree/InvenTree/api_version.py
+++ b/src/backend/InvenTree/InvenTree/api_version.py
@@ -1,13 +1,22 @@
"""InvenTree API version information."""
# InvenTree API version
-INVENTREE_API_VERSION = 251
+INVENTREE_API_VERSION = 254
"""Increment this API version number whenever there is a significant change to the API that any clients need to know about."""
INVENTREE_API_TEXT = """
+v254 - 2024-09-14 : https://github.com/inventree/InvenTree/pull/7470
+ - Implements new API endpoints for enabling custom UI functionality via plugins
+
+v253 - 2024-09-14 : https://github.com/inventree/InvenTree/pull/7944
+ - Adjustments for user API endpoints
+
+v252 - 2024-09-13 : https://github.com/inventree/InvenTree/pull/8040
+ - Add endpoint for listing all known units
+
v251 - 2024-09-06 : https://github.com/inventree/InvenTree/pull/8018
- Adds "attach_to_model" field to the ReporTemplate model
diff --git a/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py b/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py
index 77b00f73b53b..ce7df416fcde 100644
--- a/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py
+++ b/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py
@@ -8,6 +8,7 @@ class Command(BaseCommand):
def handle(self, *args, **kwargs):
"""Run the management command."""
- from plugin.staticfiles import collect_plugins_static_files
+ import plugin.staticfiles
- collect_plugins_static_files()
+ plugin.staticfiles.collect_plugins_static_files()
+ plugin.staticfiles.clear_plugins_static_files()
diff --git a/src/backend/InvenTree/InvenTree/metadata.py b/src/backend/InvenTree/InvenTree/metadata.py
index 3fd29d8c608e..0670c9b3acaa 100644
--- a/src/backend/InvenTree/InvenTree/metadata.py
+++ b/src/backend/InvenTree/InvenTree/metadata.py
@@ -2,9 +2,13 @@
import logging
-from rest_framework import serializers
+from django.core.exceptions import PermissionDenied
+from django.http import Http404
+
+from rest_framework import exceptions, serializers
from rest_framework.fields import empty
from rest_framework.metadata import SimpleMetadata
+from rest_framework.request import clone_request
from rest_framework.utils import model_meta
import common.models
@@ -29,6 +33,40 @@ class InvenTreeMetadata(SimpleMetadata):
so we can perform lookup for ForeignKey related fields.
"""
+ def determine_actions(self, request, view):
+ """Determine the 'actions' available to the user for the given view.
+
+ Note that this differs from the standard DRF implementation,
+ in that we also allow annotation for the 'GET' method.
+
+ This allows the client to determine what fields are available,
+ even if they are only for a read (GET) operation.
+
+ See SimpleMetadata.determine_actions for more information.
+ """
+ actions = {}
+
+ for method in {'PUT', 'POST', 'GET'} & set(view.allowed_methods):
+ view.request = clone_request(request, method)
+ try:
+ # Test global permissions
+ if hasattr(view, 'check_permissions'):
+ view.check_permissions(view.request)
+ # Test object permissions
+ if method == 'PUT' and hasattr(view, 'get_object'):
+ view.get_object()
+ except (exceptions.APIException, PermissionDenied, Http404):
+ pass
+ else:
+ # If user has appropriate permissions for the view, include
+ # appropriate metadata about the fields that should be supplied.
+ serializer = view.get_serializer()
+ actions[method] = self.get_serializer_info(serializer)
+ finally:
+ view.request = request
+
+ return actions
+
def determine_metadata(self, request, view):
"""Overwrite the metadata to adapt to the request user."""
self.request = request
@@ -81,6 +119,7 @@ def determine_metadata(self, request, view):
# Map the request method to a permission type
rolemap = {
+ 'GET': 'view',
'POST': 'add',
'PUT': 'change',
'PATCH': 'change',
@@ -102,10 +141,6 @@ def determine_metadata(self, request, view):
if 'DELETE' in view.allowed_methods and check(user, table, 'delete'):
actions['DELETE'] = {}
- # Add a 'VIEW' action if we are allowed to view
- if 'GET' in view.allowed_methods and check(user, table, 'view'):
- actions['GET'] = {}
-
metadata['actions'] = actions
except AttributeError:
diff --git a/src/backend/InvenTree/InvenTree/models.py b/src/backend/InvenTree/InvenTree/models.py
index c57a0ccbcbdb..2d2b558b4ea7 100644
--- a/src/backend/InvenTree/InvenTree/models.py
+++ b/src/backend/InvenTree/InvenTree/models.py
@@ -439,7 +439,7 @@ def validate_reference_field(cls, value):
)
# Check that the reference field can be rebuild
- cls.rebuild_reference_field(value, validate=True)
+ return cls.rebuild_reference_field(value, validate=True)
@classmethod
def rebuild_reference_field(cls, reference, validate=False):
diff --git a/src/backend/InvenTree/InvenTree/permissions.py b/src/backend/InvenTree/InvenTree/permissions.py
index f943bcf78ece..42088176aebf 100644
--- a/src/backend/InvenTree/InvenTree/permissions.py
+++ b/src/backend/InvenTree/InvenTree/permissions.py
@@ -79,6 +79,9 @@ def has_permission(self, request, view):
# Extract the model name associated with this request
model = get_model_for_view(view)
+ if model is None:
+ return True
+
app_label = model._meta.app_label
model_name = model._meta.model_name
@@ -99,6 +102,17 @@ def has_permission(self, request, view):
return bool(request.user and request.user.is_superuser)
+class IsSuperuserOrReadOnly(permissions.IsAdminUser):
+ """Allow read-only access to any user, but write access is restricted to superuser users."""
+
+ def has_permission(self, request, view):
+ """Check if the user is a superuser."""
+ return bool(
+ (request.user and request.user.is_superuser)
+ or request.method in permissions.SAFE_METHODS
+ )
+
+
class IsStaffOrReadOnly(permissions.IsAdminUser):
"""Allows read-only access to any user, but write access is restricted to staff users."""
diff --git a/src/backend/InvenTree/InvenTree/serializers.py b/src/backend/InvenTree/InvenTree/serializers.py
index 72fd0968ccb0..63eb6d9683af 100644
--- a/src/backend/InvenTree/InvenTree/serializers.py
+++ b/src/backend/InvenTree/InvenTree/serializers.py
@@ -403,18 +403,21 @@ class Meta:
read_only_fields = ['username', 'email']
username = serializers.CharField(label=_('Username'), help_text=_('Username'))
+
first_name = serializers.CharField(
label=_('First Name'), help_text=_('First name of the user'), allow_blank=True
)
+
last_name = serializers.CharField(
label=_('Last Name'), help_text=_('Last name of the user'), allow_blank=True
)
+
email = serializers.EmailField(
label=_('Email'), help_text=_('Email address of the user'), allow_blank=True
)
-class ExendedUserSerializer(UserSerializer):
+class ExtendedUserSerializer(UserSerializer):
"""Serializer for a User with a bit more info."""
from users.serializers import GroupSerializer
@@ -437,9 +440,11 @@ class Meta(UserSerializer.Meta):
is_staff = serializers.BooleanField(
label=_('Staff'), help_text=_('Does this user have staff permissions')
)
+
is_superuser = serializers.BooleanField(
label=_('Superuser'), help_text=_('Is this user a superuser')
)
+
is_active = serializers.BooleanField(
label=_('Active'), help_text=_('Is this user account active')
)
@@ -464,9 +469,33 @@ def validate(self, attrs):
return super().validate(attrs)
-class UserCreateSerializer(ExendedUserSerializer):
+class MeUserSerializer(ExtendedUserSerializer):
+ """API serializer specifically for the 'me' endpoint."""
+
+ class Meta(ExtendedUserSerializer.Meta):
+ """Metaclass options.
+
+ Extends the ExtendedUserSerializer.Meta options,
+ but ensures that certain fields are read-only.
+ """
+
+ read_only_fields = [
+ *ExtendedUserSerializer.Meta.read_only_fields,
+ 'is_active',
+ 'is_staff',
+ 'is_superuser',
+ ]
+
+
+class UserCreateSerializer(ExtendedUserSerializer):
"""Serializer for creating a new User."""
+ class Meta(ExtendedUserSerializer.Meta):
+ """Metaclass options for the UserCreateSerializer."""
+
+ # Prevent creation of users with superuser or staff permissions
+ read_only_fields = ['groups', 'is_staff', 'is_superuser']
+
def validate(self, attrs):
"""Expanded valiadation for auth."""
# Check that the user trying to create a new user is a superuser
diff --git a/src/backend/InvenTree/InvenTree/settings.py b/src/backend/InvenTree/InvenTree/settings.py
index 8b59306e3c1c..8c10edfb089a 100644
--- a/src/backend/InvenTree/InvenTree/settings.py
+++ b/src/backend/InvenTree/InvenTree/settings.py
@@ -133,6 +133,34 @@
# Web URL endpoint for served media files
MEDIA_URL = '/media/'
+# Are plugins enabled?
+PLUGINS_ENABLED = get_boolean_setting(
+ 'INVENTREE_PLUGINS_ENABLED', 'plugins_enabled', False
+)
+
+PLUGINS_INSTALL_DISABLED = get_boolean_setting(
+ 'INVENTREE_PLUGIN_NOINSTALL', 'plugin_noinstall', False
+)
+
+PLUGIN_FILE = config.get_plugin_file()
+
+# Plugin test settings
+PLUGIN_TESTING = get_setting(
+ 'INVENTREE_PLUGIN_TESTING', 'PLUGIN_TESTING', TESTING
+) # Are plugins being tested?
+
+PLUGIN_TESTING_SETUP = get_setting(
+ 'INVENTREE_PLUGIN_TESTING_SETUP', 'PLUGIN_TESTING_SETUP', False
+) # Load plugins from setup hooks in testing?
+
+PLUGIN_TESTING_EVENTS = False # Flag if events are tested right now
+
+PLUGIN_RETRY = get_setting(
+ 'INVENTREE_PLUGIN_RETRY', 'PLUGIN_RETRY', 3, typecast=int
+) # How often should plugin loading be tried?
+
+PLUGIN_FILE_CHECKED = False # Was the plugin file checked?
+
STATICFILES_DIRS = []
# Translated Template settings
@@ -153,6 +181,12 @@
if web_dir.exists():
STATICFILES_DIRS.append(web_dir)
+ # Append directory for sample plugin static content (if in debug mode)
+ if PLUGINS_ENABLED:
+ print('Adding plugin sample static content')
+ STATICFILES_DIRS.append(BASE_DIR.joinpath('plugin', 'samples', 'static'))
+
+ print('-', STATICFILES_DIRS[-1])
STATFILES_I18_PROCESSORS = ['InvenTree.context.status_codes']
# Color Themes Directory
@@ -1254,32 +1288,12 @@
MAINTENANCE_MODE_RETRY_AFTER = 10
MAINTENANCE_MODE_STATE_BACKEND = 'InvenTree.backends.InvenTreeMaintenanceModeBackend'
-# Are plugins enabled?
-PLUGINS_ENABLED = get_boolean_setting(
- 'INVENTREE_PLUGINS_ENABLED', 'plugins_enabled', False
-)
-PLUGINS_INSTALL_DISABLED = get_boolean_setting(
- 'INVENTREE_PLUGIN_NOINSTALL', 'plugin_noinstall', False
-)
-
-PLUGIN_FILE = config.get_plugin_file()
-
-# Plugin test settings
-PLUGIN_TESTING = get_setting(
- 'INVENTREE_PLUGIN_TESTING', 'PLUGIN_TESTING', TESTING
-) # Are plugins being tested?
-PLUGIN_TESTING_SETUP = get_setting(
- 'INVENTREE_PLUGIN_TESTING_SETUP', 'PLUGIN_TESTING_SETUP', False
-) # Load plugins from setup hooks in testing?
-PLUGIN_TESTING_EVENTS = False # Flag if events are tested right now
-PLUGIN_RETRY = get_setting(
- 'INVENTREE_PLUGIN_RETRY', 'PLUGIN_RETRY', 3, typecast=int
-) # How often should plugin loading be tried?
-PLUGIN_FILE_CHECKED = False # Was the plugin file checked?
-
# Flag to allow table events during testing
TESTING_TABLE_EVENTS = False
+# Flag to allow pricing recalculations during testing
+TESTING_PRICING = False
+
# User interface customization values
CUSTOM_LOGO = get_custom_file(
'INVENTREE_CUSTOM_LOGO', 'customize.logo', 'custom logo', lookup_media=True
diff --git a/src/backend/InvenTree/InvenTree/unit_test.py b/src/backend/InvenTree/InvenTree/unit_test.py
index f7832c782b2b..c6409fd6c82a 100644
--- a/src/backend/InvenTree/InvenTree/unit_test.py
+++ b/src/backend/InvenTree/InvenTree/unit_test.py
@@ -263,7 +263,7 @@ class InvenTreeAPITestCase(ExchangeRateMixin, UserMixin, APITestCase):
MAX_QUERY_TIME = 7.5
@contextmanager
- def assertNumQueriesLessThan(self, value, using='default', verbose=None, url=None):
+ def assertNumQueriesLessThan(self, value, using='default', verbose=False, url=None):
"""Context manager to check that the number of queries is less than a certain value.
Example:
@@ -281,7 +281,7 @@ def assertNumQueriesLessThan(self, value, using='default', verbose=None, url=Non
f'Query count exceeded at {url}: Expected < {value} queries, got {n}'
) # pragma: no cover
- if verbose or n >= value:
+ if verbose and n >= value:
msg = f'\r\n{json.dumps(context.captured_queries, indent=4)}' # pragma: no cover
else:
msg = None
@@ -291,6 +291,18 @@ def assertNumQueriesLessThan(self, value, using='default', verbose=None, url=Non
self.assertLess(n, value, msg=msg)
+ @classmethod
+ def setUpTestData(cls):
+ """Setup for API tests.
+
+ - Ensure that all global settings are assigned default values.
+ """
+ from common.models import InvenTreeSetting
+
+ InvenTreeSetting.build_default_values()
+
+ super().setUpTestData()
+
def check_response(self, url, response, expected_code=None):
"""Debug output for an unexpected response."""
# Check that the response returned the expected status code
diff --git a/src/backend/InvenTree/InvenTree/urls.py b/src/backend/InvenTree/InvenTree/urls.py
index 03712320e18c..7f6d6c6b37c5 100644
--- a/src/backend/InvenTree/InvenTree/urls.py
+++ b/src/backend/InvenTree/InvenTree/urls.py
@@ -484,7 +484,7 @@
urlpatterns += frontendpatterns
-# Append custom plugin URLs (if plugin support is enabled)
+# Append custom plugin URLs (if custom plugin support is enabled)
if settings.PLUGINS_ENABLED:
urlpatterns.append(get_plugin_urls())
diff --git a/src/backend/InvenTree/build/filters.py b/src/backend/InvenTree/build/filters.py
new file mode 100644
index 000000000000..ff3c02a5235e
--- /dev/null
+++ b/src/backend/InvenTree/build/filters.py
@@ -0,0 +1,25 @@
+"""Queryset filtering helper functions for the Build app."""
+
+
+from django.db import models
+from django.db.models import Sum, Q
+from django.db.models.functions import Coalesce
+
+
+def annotate_allocated_quantity(queryset: Q) -> Q:
+ """
+ Annotate the 'allocated' quantity for each build item in the queryset.
+
+ Arguments:
+ queryset: The BuildLine queryset to annotate
+
+ """
+
+ queryset = queryset.prefetch_related('allocations')
+
+ return queryset.annotate(
+ allocated=Coalesce(
+ Sum('allocations__quantity'), 0,
+ output_field=models.DecimalField()
+ )
+ )
diff --git a/src/backend/InvenTree/build/models.py b/src/backend/InvenTree/build/models.py
index 899145f98d6c..9b13dbf1edfa 100644
--- a/src/backend/InvenTree/build/models.py
+++ b/src/backend/InvenTree/build/models.py
@@ -9,7 +9,7 @@
from django.core.exceptions import ValidationError
from django.core.validators import MinValueValidator
from django.db import models, transaction
-from django.db.models import Sum, Q
+from django.db.models import F, Sum, Q
from django.db.models.functions import Coalesce
from django.db.models.signals import post_save
from django.dispatch.dispatcher import receiver
@@ -24,6 +24,7 @@
from build.status_codes import BuildStatus, BuildStatusGroups
from stock.status_codes import StockStatus, StockHistoryCode
+from build.filters import annotate_allocated_quantity
from build.validators import generate_next_build_reference, validate_build_order_reference
from generic.states import StateTransitionMixin
@@ -124,8 +125,7 @@ def barcode_model_type_code(cls):
def save(self, *args, **kwargs):
"""Custom save method for the BuildOrder model"""
- self.validate_reference_field(self.reference)
- self.reference_int = self.rebuild_reference_field(self.reference)
+ self.reference_int = self.validate_reference_field(self.reference)
# Check part when initially creating the build order
if not self.pk or self.has_field_changed('part'):
@@ -987,12 +987,13 @@ def trim_allocated_stock(self):
items_to_save = []
items_to_delete = []
- lines = self.untracked_line_items
- lines = lines.prefetch_related('allocations')
+ lines = self.untracked_line_items.all()
+ lines = lines.exclude(bom_item__consumable=True)
+ lines = annotate_allocated_quantity(lines)
for build_line in lines:
- reduce_by = build_line.allocated_quantity() - build_line.quantity
+ reduce_by = build_line.allocated - build_line.quantity
if reduce_by <= 0:
continue
@@ -1290,18 +1291,20 @@ def unallocated_lines(self, tracked=None):
"""Returns a list of BuildLine objects which have not been fully allocated."""
lines = self.build_lines.all()
+ # Remove any 'consumable' line items
+ lines = lines.exclude(bom_item__consumable=True)
+
if tracked is True:
lines = lines.filter(bom_item__sub_part__trackable=True)
elif tracked is False:
lines = lines.filter(bom_item__sub_part__trackable=False)
- unallocated_lines = []
+ lines = annotate_allocated_quantity(lines)
- for line in lines:
- if not line.is_fully_allocated():
- unallocated_lines.append(line)
+ # Filter out any lines which have been fully allocated
+ lines = lines.filter(allocated__lt=F('quantity'))
- return unallocated_lines
+ return lines
def is_fully_allocated(self, tracked=None):
"""Test if the BuildOrder has been fully allocated.
@@ -1314,19 +1317,24 @@ def is_fully_allocated(self, tracked=None):
Returns:
True if the BuildOrder has been fully allocated, otherwise False
"""
- lines = self.unallocated_lines(tracked=tracked)
- return len(lines) == 0
+
+ return self.unallocated_lines(tracked=tracked).count() == 0
def is_output_fully_allocated(self, output):
"""Determine if the specified output (StockItem) has been fully allocated for this build
Args:
- output: StockItem object
+ output: StockItem object (the "in production" output to test against)
To determine if the output has been fully allocated,
we need to test all "trackable" BuildLine objects
"""
- for line in self.build_lines.filter(bom_item__sub_part__trackable=True):
+
+ lines = self.build_lines.filter(bom_item__sub_part__trackable=True)
+ lines = lines.exclude(bom_item__consumable=True)
+
+ # Find any lines which have not been fully allocated
+ for line in lines:
# Grab all BuildItem objects which point to this output
allocations = BuildItem.objects.filter(
build_line=line,
@@ -1350,11 +1358,14 @@ def is_overallocated(self):
Returns:
True if any BuildLine has been over-allocated.
"""
- for line in self.build_lines.all():
- if line.is_overallocated():
- return True
- return False
+ lines = self.build_lines.all().exclude(bom_item__consumable=True)
+ lines = annotate_allocated_quantity(lines)
+
+ # Find any lines which have been over-allocated
+ lines = lines.filter(allocated__gt=F('quantity'))
+
+ return lines.count() > 0
@property
def is_active(self):
@@ -1692,6 +1703,9 @@ def complete_allocation(self, user, notes=''):
- If the referenced part is trackable, the stock item will be *installed* into the build output
- If the referenced part is *not* trackable, the stock item will be *consumed* by the build order
+
+ TODO: This is quite expensive (in terms of number of database hits) - and requires some thought
+
"""
item = self.stock_item
diff --git a/src/backend/InvenTree/build/test_api.py b/src/backend/InvenTree/build/test_api.py
index 9183e1b43650..83af0a7f1dae 100644
--- a/src/backend/InvenTree/build/test_api.py
+++ b/src/backend/InvenTree/build/test_api.py
@@ -1039,6 +1039,12 @@ def setUpTestData(cls):
outputs = cls.build.build_outputs.all()
cls.build.complete_build_output(outputs[0], cls.user)
+ def setUp(self):
+ """Basic operation as part of test suite setup"""
+ super().setUp()
+
+ self.generate_exchange_rates()
+
def test_setup(self):
"""Validate expected state after set-up."""
self.assertEqual(self.build.incomplete_outputs.count(), 0)
@@ -1067,7 +1073,7 @@ def test_overallocated_requires_acceptance(self):
'accept_overallocated': 'accept',
},
expected_code=201,
- max_query_count=550, # TODO: Come back and refactor this
+ max_query_count=1000, # TODO: Come back and refactor this
)
self.build.refresh_from_db()
@@ -1088,9 +1094,11 @@ def test_overallocated_can_trim(self):
'accept_overallocated': 'trim',
},
expected_code=201,
- max_query_count=600, # TODO: Come back and refactor this
+ max_query_count=1000, # TODO: Come back and refactor this
)
+ # Note: Large number of queries is due to pricing recalculation for each stock item
+
self.build.refresh_from_db()
# Build should have been marked as complete
diff --git a/src/backend/InvenTree/common/api.py b/src/backend/InvenTree/common/api.py
index 7d3a47ea8d1a..e257c31a2f2d 100644
--- a/src/backend/InvenTree/common/api.py
+++ b/src/backend/InvenTree/common/api.py
@@ -1,6 +1,7 @@
"""Provides a JSON API for common components."""
import json
+from typing import Type
from django.conf import settings
from django.contrib.contenttypes.models import ContentType
@@ -19,6 +20,7 @@
from djmoney.contrib.exchange.models import ExchangeBackend, Rate
from drf_spectacular.utils import OpenApiResponse, extend_schema
from error_report.models import Error
+from pint._typing import UnitLike
from rest_framework import permissions, serializers
from rest_framework.exceptions import NotAcceptable, NotFound, PermissionDenied
from rest_framework.permissions import IsAdminUser
@@ -27,6 +29,7 @@
import common.models
import common.serializers
+import InvenTree.conversion
from common.icons import get_icon_packs
from common.settings import get_global_setting
from generic.states.api import urlpattern as generic_states_api_urls
@@ -533,6 +536,36 @@ class CustomUnitDetail(RetrieveUpdateDestroyAPI):
permission_classes = [permissions.IsAuthenticated, IsStaffOrReadOnly]
+class AllUnitList(ListAPI):
+ """List of all defined units."""
+
+ serializer_class = common.serializers.AllUnitListResponseSerializer
+ permission_classes = [permissions.IsAuthenticated, IsStaffOrReadOnly]
+
+ def get(self, request, *args, **kwargs):
+ """Return a list of all available units."""
+ reg = InvenTree.conversion.get_unit_registry()
+ all_units = {k: self.get_unit(reg, k) for k in reg}
+ data = {
+ 'default_system': reg.default_system,
+ 'available_systems': dir(reg.sys),
+ 'available_units': {k: v for k, v in all_units.items() if v},
+ }
+ return Response(data)
+
+ def get_unit(self, reg, k):
+ """Parse a unit from the registry."""
+ if not hasattr(reg, k):
+ return None
+ unit: Type[UnitLike] = getattr(reg, k)
+ return {
+ 'name': k,
+ 'is_alias': reg.get_name(k) == k,
+ 'compatible_units': [str(a) for a in unit.compatible_units()],
+ 'isdimensionless': unit.dimensionless,
+ }
+
+
class ErrorMessageList(BulkDeleteMixin, ListAPI):
"""List view for server error messages."""
@@ -900,6 +933,7 @@ def get_queryset(self):
path('', CustomUnitDetail.as_view(), name='api-custom-unit-detail')
]),
),
+ path('all/', AllUnitList.as_view(), name='api-all-unit-list'),
path('', CustomUnitList.as_view(), name='api-custom-unit-list'),
]),
),
diff --git a/src/backend/InvenTree/common/models.py b/src/backend/InvenTree/common/models.py
index d8f2fc962af3..f09f60df6f08 100644
--- a/src/backend/InvenTree/common/models.py
+++ b/src/backend/InvenTree/common/models.py
@@ -2095,6 +2095,13 @@ def save(self, *args, **kwargs):
'validator': bool,
'after_save': reload_plugin_registry,
},
+ 'ENABLE_PLUGINS_INTERFACE': {
+ 'name': _('Enable interface integration'),
+ 'description': _('Enable plugins to integrate into the user interface'),
+ 'default': False,
+ 'validator': bool,
+ 'after_save': reload_plugin_registry,
+ },
'PROJECT_CODES_ENABLED': {
'name': _('Enable project codes'),
'description': _('Enable project codes for tracking projects'),
diff --git a/src/backend/InvenTree/common/serializers.py b/src/backend/InvenTree/common/serializers.py
index e0eec23a4997..991254a1e290 100644
--- a/src/backend/InvenTree/common/serializers.py
+++ b/src/backend/InvenTree/common/serializers.py
@@ -382,6 +382,22 @@ class Meta:
fields = ['pk', 'name', 'symbol', 'definition']
+class AllUnitListResponseSerializer(serializers.Serializer):
+ """Serializer for the AllUnitList."""
+
+ class Unit(serializers.Serializer):
+ """Serializer for the AllUnitListResponseSerializer."""
+
+ name = serializers.CharField()
+ is_alias = serializers.BooleanField()
+ compatible_units = serializers.ListField(child=serializers.CharField())
+ isdimensionless = serializers.BooleanField()
+
+ default_system = serializers.CharField()
+ available_systems = serializers.ListField(child=serializers.CharField())
+ available_units = Unit(many=True)
+
+
class ErrorMessageSerializer(InvenTreeModelSerializer):
"""DRF serializer for server error messages."""
diff --git a/src/backend/InvenTree/common/tests.py b/src/backend/InvenTree/common/tests.py
index 826bce15b765..6990fc9c18c7 100644
--- a/src/backend/InvenTree/common/tests.py
+++ b/src/backend/InvenTree/common/tests.py
@@ -1495,6 +1495,14 @@ def test_validation(self):
for name in invalid_name_values:
self.patch(url, {'name': name}, expected_code=400)
+ def test_api(self):
+ """Test the CustomUnit API."""
+ response = self.get(reverse('api-all-unit-list'))
+ self.assertIn('default_system', response.data)
+ self.assertIn('available_systems', response.data)
+ self.assertIn('available_units', response.data)
+ self.assertEqual(len(response.data['available_units']) > 100, True)
+
class ContentTypeAPITest(InvenTreeAPITestCase):
"""Unit tests for the ContentType API."""
diff --git a/src/backend/InvenTree/company/models.py b/src/backend/InvenTree/company/models.py
index 11c333c254d3..ec621b0e7ab2 100644
--- a/src/backend/InvenTree/company/models.py
+++ b/src/backend/InvenTree/company/models.py
@@ -1049,7 +1049,10 @@ def get_api_url():
)
def after_save_supplier_price(sender, instance, created, **kwargs):
"""Callback function when a SupplierPriceBreak is created or updated."""
- if InvenTree.ready.canAppAccessDatabase() and not InvenTree.ready.isImportingData():
+ if (
+ InvenTree.ready.canAppAccessDatabase(allow_test=settings.TESTING_PRICING)
+ and not InvenTree.ready.isImportingData()
+ ):
if instance.part and instance.part.part:
instance.part.part.schedule_pricing_update(create=True)
@@ -1061,6 +1064,9 @@ def after_save_supplier_price(sender, instance, created, **kwargs):
)
def after_delete_supplier_price(sender, instance, **kwargs):
"""Callback function when a SupplierPriceBreak is deleted."""
- if InvenTree.ready.canAppAccessDatabase() and not InvenTree.ready.isImportingData():
+ if (
+ InvenTree.ready.canAppAccessDatabase(allow_test=settings.TESTING_PRICING)
+ and not InvenTree.ready.isImportingData()
+ ):
if instance.part and instance.part.part:
instance.part.part.schedule_pricing_update(create=False)
diff --git a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po
index 905faad5c674..1dda205ffad0 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"Language: ar_SA\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -126,7 +126,7 @@ msgstr "يجب عليك كتابة نفس البريد الإلكتروني كل
#: InvenTree/forms.py:221
msgid "MFA Registration is disabled."
-msgstr ""
+msgstr "تسجيل MFA معطل."
#: InvenTree/forms.py:259 InvenTree/forms.py:267
msgid "The provided primary email address is not valid."
@@ -155,21 +155,21 @@ msgstr "تكرار التسلسل"
#: InvenTree/helpers.py:554 InvenTree/helpers.py:597
#, python-brace-format
msgid "Invalid group range: {group}"
-msgstr ""
+msgstr "نطاق المجموعة غير صحيح: {group}"
#: InvenTree/helpers.py:585
#, python-brace-format
msgid "Group range {group} exceeds allowed quantity ({expected_quantity})"
-msgstr ""
+msgstr "نطاق المجموعة {group} يتجاوز الكَمّيَّة المسموح بها ({expected_quantity})"
#: InvenTree/helpers.py:615 InvenTree/helpers.py:622 InvenTree/helpers.py:641
#, python-brace-format
msgid "Invalid group sequence: {group}"
-msgstr ""
+msgstr "تسلسل المجموعة غير صالح: {group}"
#: InvenTree/helpers.py:651
msgid "No serial numbers found"
-msgstr ""
+msgstr "لم يتم العثور على أرقام متسلسلة"
#: InvenTree/helpers.py:656
msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})"
@@ -213,7 +213,7 @@ msgstr ""
#: InvenTree/locales.py:18
msgid "Arabic"
-msgstr ""
+msgstr "العربيّة"
#: InvenTree/locales.py:19
msgid "Bulgarian"
@@ -364,7 +364,7 @@ msgstr ""
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr ""
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr ""
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr ""
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr ""
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr ""
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr ""
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr ""
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr ""
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr ""
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr ""
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr ""
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po
index 0902a240ab44..e2db3b7d1406 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"Language: bg_BG\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Китайски (традиционен)"
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr ""
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr ""
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr ""
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr ""
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Потребител"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr ""
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr ""
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr ""
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr ""
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr ""
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr ""
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Цялостна наличност"
@@ -6755,7 +6752,7 @@ msgstr "Цялостна наличност"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr "Места в склада"
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po
index eeb2ffb5f02a..9b093adef89e 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Language: cs_CZ\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Čínština (tradiční)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] Přihlásit se do aplikace"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Duplicitní názvy nemohou existovat pod stejným nadřazeným názvem"
msgid "Invalid choice"
msgstr "Neplatný výběr"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Název"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Chyba serveru"
msgid "An error has been logged by the server."
msgstr "Server zaznamenal chybu."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Musí být platné číslo"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Vyberte měnu z dostupných možností"
msgid "Username"
msgstr "Uživatelské jméno"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "Křestní jméno"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr "Křestní jméno uživatele"
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "Příjmení"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr "Příjmení uživatele"
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr "Emailová adresa uživatele"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr "Personál"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr "Má tento uživatel oprávnění personálu"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr "Super-uživatel"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr "Je tento uživatel superuživatel"
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr "Je tento uživatel superuživatel"
msgid "Active"
msgstr "Aktivní"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr "Je tento uživatelský účet aktivní"
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "Nemáte oprávnění měnit tuto uživatelskou roli."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Pouze superuživatelé mohou vytvářet nové uživatele"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "Váš účet byl vytvořen."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "Pro přihlášení použijte funkci obnovení hesla"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "Vítejte v InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Neplatná hodnota"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Datový soubor"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Vyberte datový soubor k nahrání"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Nepodporovaný typ souboru"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Soubor je příliš velký"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "V souboru nebyly nalezeny žádné sloupce"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "V souboru nebyly nalezeny žádné řádky s daty"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Nebyly zadány žádné řádky s daty"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Nebyly zadány žádné sloupce s daty"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Chybí povinný sloupec: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Duplicitní sloupec: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Vzdálený obraz"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "URL souboru vzdáleného obrázku"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "Stahování obrázků ze vzdálené URL není povoleno"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Kontrola procesů na pozadí se nezdařila"
@@ -759,7 +759,7 @@ msgstr ""
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:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "Sestavení musí být zrušeno před odstraněním"
msgid "Consumable"
msgstr "Spotřební materiál"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "Volitelné"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr "Přiděleno"
msgid "Available"
msgstr "Dostupné"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Dostupné"
msgid "Build Order"
msgstr "Vytvořit objednávku"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr "Referenční číslo objednávky"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "Příkaz sestavení pro který je toto sestavení přiděleno"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr "Uživatel nebo skupina odpovědná za tento příkaz k sestavení"
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Externí odkaz"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Odkaz na externí URL"
@@ -1110,7 +1110,7 @@ msgstr "Příkaz k sestavení {build} byl dokončen"
msgid "A build order has been completed"
msgstr "Příkaz k sestavení byl dokončen"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "Nebyl specifikováno žádný výstup sestavení"
@@ -1122,37 +1122,37 @@ msgstr "Výstup sestavení je již dokončen"
msgid "Build output does not match Build Order"
msgstr "Výstup sestavení neodpovídá příkazu sestavení"
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "Množství musí být vyšší než nula"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
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:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, 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:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr "Vytvořit položku řádku objednávky"
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr "Vytvořit objekt"
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr "Vytvořit objekt"
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr "Vytvořit objekt"
msgid "Quantity"
msgstr "Množství"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr "Vyžadované množství pro objednávku"
-#: build/models.py:1586
+#: build/models.py:1597
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:1595
+#: build/models.py:1606
#, 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:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "Skladová položka je nadměrně zabrána"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "Zabrané množství musí být větší než nula"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "Množství musí být 1 pro zřetězený sklad"
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr "Vybraná položka zásob neodpovídá řádku BOM"
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr "Vybraná položka zásob neodpovídá řádku BOM"
msgid "Stock Item"
msgstr "Skladové položky"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Zdrojová skladová položka"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Skladové množství pro sestavení"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Instalovat do"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Cílová skladová položka"
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr "Název dílu"
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "Zadejte sériová čísla pro sestavení výstupů"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr "Umístění dokončených výstupů sestavy"
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr "Pro přidělení sledovaných dílů musí být zadán výstup sestavy"
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Výstup sestavy nelze zadat pro přidělení nesledovaných dílů"
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr "Položky přidělení musí být poskytnuty"
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr "Balení"
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr "ID dílu"
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr "IPN dílu"
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr "Sledovatelné"
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr "BOM Položka"
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr "Přidělené zásoby"
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr "Přidělené zásoby"
msgid "On Order"
msgstr "Na objednávku"
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr "Ve výrobě"
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "Zrušeno"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Hotovo"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr "Smazat sestavu"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr "Dokončené výstupy"
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr "Přidělené díly"
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr "Neúplné výstupy"
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr "Je odkaz"
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr "Je soubor"
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr "Uživatel nemá oprávnění k odstranění této přílohy"
@@ -2352,8 +2349,8 @@ msgstr "Jak často aktualizovat směnné kurzy (pro vypnutí nastavte na nulu)"
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "dny"
@@ -2581,9 +2578,9 @@ msgstr "Kopírovat šablony parametrů kategorie"
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:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,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:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr "Komponent"
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Zaznamenávat chyby, které se vyskytnou při vytváření reportů"
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "Velikost stránky"
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr "Výchozí velikost stránky pro PDF reporty"
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr "Povolit testovací reporty"
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr "Povolit generování zkušebních reportů"
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr "Připojit testovací reporty"
-
-#: common/models.py:1716
-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:1722
msgid "Globally Unique Serials"
msgstr "Globálně unikátní sériová čísla"
-#: common/models.py:1723
+#: common/models.py:1709
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:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr "Automaticky vyplnit sériová čísla"
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr "Automaticky vyplnit sériová čísla ve formulářích"
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr "Odstranit vyčerpané zásoby"
-#: common/models.py:1736
+#: common/models.py:1722
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:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr "Šablona kódu dávky"
-#: common/models.py:1744
+#: common/models.py:1730
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:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr "Expirace zásob"
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr "Povolit funkci expirace zásob"
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr "Prodat prošlé zásoby"
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr "Povolit prodej prošlých zásob"
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr "Čas stáří zásob"
-#: common/models.py:1763
+#: common/models.py:1749
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:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr "Sestavit prošlé zásoby"
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr "Povolit sestavování s prošlými zásobami"
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr "Kontrola vlastnictví zásob"
-#: common/models.py:1777
+#: common/models.py:1763
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:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr "Výchozí ikona umístění zásob"
-#: common/models.py:1783
+#: common/models.py:1769
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:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr "Zobrazit nainstalované skladové položky"
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr "Zobrazit nainstalované skladové položky ve skladových tabulkách"
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr "Zkontrolovat BOM při instalaci položek"
-#: common/models.py:1796
+#: common/models.py:1782
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:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr "Povolit převod mimo sklad"
-#: common/models.py:1804
+#: common/models.py:1790
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:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr "Referenční vzor objednávky sestavy"
-#: common/models.py:1812
+#: common/models.py:1798
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:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr "Vyžadovat odpovědného vlastníka"
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
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:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr "Blokovat, dokud testy neprojdou"
-#: common/models.py:1854
+#: common/models.py:1840
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:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr "Povolit vracení objednávek"
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr "Povolit funkci vrácení objednávky v uživatelském rozhraní"
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr "Referenční vzor návratové objednávky"
-#: common/models.py:1868
+#: common/models.py:1854
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:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr "Úprava dokončených návratových objednávek"
-#: common/models.py:1882
+#: common/models.py:1868
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:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr "Referenční vzor prodejní objednávky"
-#: common/models.py:1890
+#: common/models.py:1876
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:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr "Výchozí přeprava prodejní objednávky"
-#: common/models.py:1903
+#: common/models.py:1889
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:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr "Úprava dokončených prodejních objednávek"
-#: common/models.py:1910
+#: common/models.py:1896
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:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr "Označit odeslané objednávky jako dokončené"
-#: common/models.py:1918
+#: common/models.py:1904
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:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr "Referenční vzor nákupní objednávky"
-#: common/models.py:1926
+#: common/models.py:1912
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:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr "Úprava dokončených nákupních objednávek"
-#: common/models.py:1940
+#: common/models.py:1926
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:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr "Automatické dokončování nákupních objednávek"
-#: common/models.py:1948
+#: common/models.py:1934
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:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr "Povolit pole zapomenutého hesla"
-#: common/models.py:1956
+#: common/models.py:1942
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:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr "Povolit registrace"
-#: common/models.py:1962
+#: common/models.py:1948
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:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr "Povolit SSO"
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr "Povolit SSO na přihlašovacích stránkách"
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr "Povolit SSO registraci"
-#: common/models.py:1975
+#: common/models.py:1961
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:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "Vyžadován e-mail"
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr "Požadovat, aby uživatel při registraci zadal e-mail"
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr "Automaticky vyplnit SSO uživatele"
-#: common/models.py:2021
+#: common/models.py:2007
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:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr "Mail dvakrát"
-#: common/models.py:2028
+#: common/models.py:2014
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:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr "Heslo dvakrát"
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr "Při registraci dvakrát požádat uživatele o heslo"
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr "Povolené domény"
-#: common/models.py:2041
+#: common/models.py:2027
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:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr "Skupina při registraci"
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr "Vynutit MFA"
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr "Uživatelé musí používat vícefaktorové zabezpečení."
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr "Zkontrolovat pluginy při spuštění"
-#: common/models.py:2063
+#: common/models.py:2049
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:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr "Zkontrolovat aktualizace pluginů"
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Povolit pravidelné kontroly aktualizací nainstalovaných pluginů"
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr "Povolit integraci URL"
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr "Povolit plug-inům přidávat trasy URL"
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr "Povolit integraci navigace"
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr "Povolit integrování pluginů do navigace"
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr "Povolit integraci aplikací"
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr "Povolit pluginům přidávát aplikace"
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr "Povolit integraci plánu"
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr "Povolit pluginům spouštění naplánovaných úloh"
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr "Povolit integraci událostí"
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr "Povolit pluginům reagovat na interní události"
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr "Povolit kódy projektů"
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr "Povolit kódy projektů pro sledování projektů"
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr "Funkce inventury"
-#: common/models.py:2121
+#: common/models.py:2114
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:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr "Vyloučit externí umístění"
-#: common/models.py:2129
+#: common/models.py:2122
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:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr "Perioda automatické inventury"
-#: common/models.py:2137
+#: common/models.py:2130
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:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr "Interval mazání reportů"
-#: common/models.py:2145
+#: common/models.py:2138
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:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr "Zobrazit celá jména uživatelů"
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr "Zobrazit plná jména uživatelů namísto uživatelských jmen"
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr "Povolit data zkušební stanice"
-#: common/models.py:2159
+#: common/models.py:2152
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:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
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:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr "Skrýt neaktivní díly"
-#: common/models.py:2216
+#: common/models.py:2217
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:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr "Zobrazit odebírané díly"
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr "Zobrazit odebírané díly na domovské stránce"
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr "Zobrazit odebírané kategorie"
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr "Zobrazit kategorie odebíraných dílů na hlavní stránce"
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr "Zobrazit nejnovější díly"
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr "Zobrazit nejnovější díly na domovské stránce"
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr "Zobrazit neplatné kusovníky (BOMy)"
-#: common/models.py:2241
+#: common/models.py:2242
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:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr "Zobrazit nedávné změny zásob"
-#: common/models.py:2247
+#: common/models.py:2248
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:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr "Zobrazit nízký stav zásob"
-#: common/models.py:2253
+#: common/models.py:2254
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:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr "Zobrazit vyčerpané zásoby"
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr "Zobrazit vyčerpané položky na domovské stránce"
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr "Zobrazit potřebné zásoby"
-#: common/models.py:2265
+#: common/models.py:2266
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:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr "Zobrazit expirované zásoby"
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr "Zobrazit expirované skladové položky na domovské stránce"
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr "Zobrazit neaktuální zásoby"
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr "Zobrazit neaktuální skladové položky na domovské stránce"
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr "Zobrazit nevyřízené sestavy"
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr "Zobrazit nevyřízené sestavy na domovské stránce"
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr "Zobrazit sestavy po splatnosti"
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr "Zobrazit sestavy po splatnosti na domovské stránce"
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr "Zobrazit nevyřízené PO"
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr "Zobrazit nevyřízené PO na domovské stránce"
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr "Zobrazit PO po splatnosti"
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr "Zobrazit PO po splatnosti na domovské stránce"
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr "Zobrazit nevyřízené SO"
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr "Zobrazit nevyřízené SO na domovské stránce"
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr "Zobrazit SO po splatnosti"
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr "Zobrazit SO po splatnosti na domovské stránce"
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr "Zobrazit čekající zásilky SO"
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr "Zobrazit čekající zásilky SO na domovské stránce"
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr "Zobrazit novinky"
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr "Zobrazit novinky na domovské stránce"
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr "Zobrazení štítků na řádku"
-#: common/models.py:2332
+#: common/models.py:2333
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:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr "Výchozí tiskárna štítků"
-#: common/models.py:2340
+#: common/models.py:2341
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:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr "Zobrazení reportů na řádku"
-#: common/models.py:2348
+#: common/models.py:2349
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:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr "Hledat díly"
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr "Zobrazit díly v náhledu hledání"
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr "Hledat díly dodavatele"
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr "Zobrazit díly dodavatele v náhledu hledání"
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr "Vyhledávání dílů výrobce"
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr "Zobrazit díly výrobce v náhledu hledání"
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr "Skrýt neaktivní díly"
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr "Vyloučené neaktivní části z okna náhledu vyhledávání"
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr "Hledat kategorie"
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr "Zobrazit kategorie dílů v náhledu hledání"
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr "Hledat zásoby"
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr "Zobrazit skladové položky v náhledu hledání"
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr "Skrýt nedostupné skladové položky"
-#: common/models.py:2392
+#: common/models.py:2393
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:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr "Hledat umístění"
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr "Zobrazit skladová umístění v náhledu hledání"
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr "Hledat společnosti"
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr "Zobrazit společnosti v náhledu hledání"
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr "Hledat objednávky sestav"
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr "Zobrazit objednávky sestav v náhledu hledání"
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr "Hledat nákupní objednávky"
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr "Zobrazit nákupní objednávky v náhledu hledání"
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr "Vyloučit neaktivní nákupní objednávky"
-#: common/models.py:2424
+#: common/models.py:2425
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:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr "Hledat prodejní objednávky"
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr "Zobrazit prodejní objednávky v náhledu hledání"
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr "Vyloučit neaktivní prodejní objednávky"
-#: common/models.py:2438
+#: common/models.py:2439
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:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr "Vyhledávání vrácených objednávek"
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr "Zobrazit vrácené objednávky v okně náhledu vyhledávání"
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr "Vyloučit neaktivní vrácené objednávky"
-#: common/models.py:2452
+#: common/models.py:2453
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:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr "Náhled výsledků vyhledávání"
-#: common/models.py:2460
+#: common/models.py:2461
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:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr "Regex hledání"
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr "Povolit regulární výrazy ve vyhledávacích dotazech"
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr "Vyhledávání celého slova"
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr "Vyhledávací dotazy vracejí výsledky pro shody celých slov"
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr "Zobrazit množství ve formulářích"
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr "Zobrazit dostupné množství dílů v některých formulářích"
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr "Klávesa Escape zavře formuláře"
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr "Zavřít modální formuláře pomocí klávesy escape"
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr "Pevná navigační lišta"
-#: common/models.py:2491
+#: common/models.py:2492
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:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr "Formát data"
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr "Preferovaný formát pro zobrazení datumů"
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Plánování dílů"
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr "Zobrazit informace o plánování dílů"
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Inventura dílu"
-#: common/models.py:2518
+#: common/models.py:2519
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:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr "Délka textu v tabulce"
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr "Maximální délka textu v zobrazeních tabulek"
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr "Přijímat zprávy o chybách"
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr "Dostávat oznámení o systémových chybách"
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr "Poslední použité tiskárny"
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr "Uložte poslední použité tiskárny pro uživatele"
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Uživatel"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr "Množství cenové slevy"
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr "Množství cenové slevy"
msgid "Price"
msgstr "Cena"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr "Jednotková cena při stanoveném množství"
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr "Koncový bod"
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr "Koncový bod, ve kterém je tento webhook přijímán"
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr "Název tohoto webhooku"
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr "Je tento webhook aktivní"
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr "Token"
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr "Token pro přístup"
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr "Tajný klíč"
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr "Sdílený tajný klíč pro HMAC"
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr "ID zprávy"
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr "Unikátní identifikátor pro tuto zprávu"
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr "Hostitel"
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr "Hostitel, od kterého byla tato zpráva přijata"
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr "Záhlaví"
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr "Záhlaví této zprávy"
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr "Tělo"
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr "Tělo zprávy"
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr "Koncový bod, na kterém byla zpráva přijata"
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr "Pracoval na"
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr "Byla práce na této zprávě dokončena?"
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr "ID"
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Název"
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr "Název"
msgid "Link"
msgstr "Odkaz"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr "Zveřejněno"
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Souhrn"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr "Přečteno"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr "Byla tato novinka přečtena?"
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "Obrazek"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr "Soubor obrázku"
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr "Cílový typ modelu pro tento obrázek"
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr "Cílové ID modelu pro tento obrázek"
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr "Název jednotky musí být platný identifikátor"
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr "Název jednotky"
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "Symbol"
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr "Volitelný symbol jednotky"
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr "Definice"
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr "Definice jednotky"
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Příloha"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Chybějící soubor"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Chybějící externí odkaz"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Vyberte soubor k přiložení"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Komentář"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr "Komentář přílohy"
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr "Datum nahrání"
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr "Datum, kdy byl soubor nahrán"
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr "Velikost souboru"
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr "Velikost souboru v bytech"
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr "Uveden neplatný typ modelu pro přílohu"
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr "Čas uzamčení"
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr "Jméno úkolu"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr "Funkce"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr "Název funkce"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr "Argumenty"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr "Argumenty úlohy"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr "Argumenty klíčových slov"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr "Argumenty klíčových slov úlohy"
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Název souboru"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr "Typ modelu"
-#: common/serializers.py:591
+#: common/serializers.py:607
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"
@@ -4447,12 +4444,12 @@ msgstr "Odkaz na informace o adrese (externí)"
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr "Výrobce dílu"
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Základní díl"
@@ -4463,8 +4460,8 @@ msgstr "Zvolte díl"
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr "Vyberte výrobce"
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr "Název parametru"
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr "Hodnota parametru"
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr "Jednotky parametru"
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr "Odkazovaný díl výrobce musí odkazovat na stejný základní díl"
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr "Dodavatel"
msgid "Select supplier"
msgstr "Vyberte dodavatele"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr "Skladová evidence dodavatele"
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr "Popis dílu dodavatele"
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr "Popis dílu dodavatele"
msgid "Note"
msgstr "Poznámka"
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr "základní cena"
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimální poplatek (např. poplatek za skladování)"
@@ -4629,7 +4626,7 @@ msgstr "Počet kusů v balení"
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:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr "více"
@@ -4661,7 +4658,7 @@ msgstr "Výchozí měna používaná pro tohoto dodavatele"
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr "Smazat obrázek"
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr "Nejsou k dispozici žádné informace o dodavateli"
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr "Aktualizovat dostupnost dílu"
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr "Počet přijatých položek"
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr "Nákupní cena"
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr "Uživatel, který zkontroloval tuto zásilku"
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr "Doprava"
@@ -5982,7 +5979,7 @@ msgstr "Řádková položka"
msgid "Line item does not match purchase order"
msgstr "Řádková položka neodpovídá nákupní objednávce"
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr "Vyberte cílové umístění pro přijaté položky"
@@ -6019,7 +6016,7 @@ msgstr "Tento čárový kód se již používá"
msgid "An integer quantity must be provided for trackable parts"
msgstr "U sledovatelných dílů musí být uvedeno celočíselné množství"
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr "Musí být uvedeny řádkové položky"
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Kategorie dílu"
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr "Název dílu"
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr "Kategorie dílu"
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr "ID dílu nebo název dílu"
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr "Jedinečná hodnota ID dílu"
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr "Hodnota IPN dílu"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr "Vyberte nadřazený díl"
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr "Aktualizovat díly"
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr "Aktualizovat cenu pro díl"
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Sestavení"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po
index 359919577bb7..9f5bc21dccd8 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Language: da_DK\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Kinesisk (traditionelt)"
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr "Ugyldigt valg"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Navn"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Serverfejl"
msgid "An error has been logged by the server."
msgstr "En fejl blev logget af serveren."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Skal være et gyldigt tal"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Vælg valuta fra tilgængelige muligheder"
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "Du har ikke tilladelse til at ændre denne brugerrolle."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Kun superbrugere kan oprette nye brugere"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Ugyldig værdi"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Datafil"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Vælg datafilen til upload"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Filtype ikke understøttet"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Filen er for stor"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Ingen kolonner fundet i fil"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Ingen datarækker fundet i fil"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Ingen data-rækker angivet"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Ingen data-kolonner angivet"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Mangler påkrævet kolonne: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Duplikeret kolonne: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Eksternt billede"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "URL til ekstern billedfil"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "Download af billeder fra ekstern URL er ikke aktiveret"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Kontrol af baggrundstjeneste mislykkedes"
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr "Produktion skal anulleres, før den kan slettes"
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "Produktion skal anulleres, før den kan slettes"
msgid "Consumable"
msgstr "Forbrugsvare"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "Valgfri"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr "Allokeret"
msgid "Available"
msgstr "Tilgængelig"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Tilgængelig"
msgid "Build Order"
msgstr "Produktionsordre"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr "Produktionsordre reference"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "Produktionsordre som er tildelt denne produktion"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr "Bruger eller gruppe ansvarlig for denne byggeordre"
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Ekstern link"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Link til ekstern URL"
@@ -1110,7 +1110,7 @@ msgstr "Bygningsordre {build} er fuldført"
msgid "A build order has been completed"
msgstr "En byggeordre er fuldført"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "Annulleret"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Fuldført"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Bruger"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Vedhæftning"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Manglende fil"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Manglende eksternt link"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Vælg fil, der skal vedhæftes"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Kommentar"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Filnavn"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po
index 72004f82a4f1..03086912f8aa 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Chinesisch (Traditionell)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] In App einloggen"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Doppelte Namen können nicht unter dem selben Elternteil existieren"
msgid "Invalid choice"
msgstr "Ungültige Auswahl"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Name"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Serverfehler"
msgid "An error has been logged by the server."
msgstr "Ein Fehler wurde vom Server protokolliert."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Muss eine gültige Nummer sein"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Währung aus verfügbaren Optionen auswählen"
msgid "Username"
msgstr "Benutzername"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "Vorname"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr "Vorname des Benutzers"
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "Nachname"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr "Nachname des Benutzers"
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr "E-Mailadresse des Benutzers"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr "Mitarbeiter"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr "Hat der Benutzer die Mitarbeiter Berechtigung"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr "Administrator"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr "Ist dieser Benutzer ein Administrator"
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr "Ist dieser Benutzer ein Administrator"
msgid "Active"
msgstr "Aktiv"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr "Ist dieses Benutzerkonto aktiv"
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "Sie haben keine Berechtigung, diese Benutzerrolle zu ändern."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Nur Superuser können neue Benutzer erstellen"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "Ihr Konto wurde erstellt."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "Bitte benutzen Sie die Passwort-zurücksetzen-Funktion, um sich anzumelden"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "Willkommen bei InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Ungültiger Wert"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Datendatei"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Neue Datei zum Hochladen auswählen"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Nicht unterstütztes Dateiformat"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Datei ist zu groß"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Keine Spalten in der Datei gefunden"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Keine Datensätze in der Datei gefunden"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Keine Zeilen ausgewählt"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Keine Spalten angegeben"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Erforderliche Spalte '{name}' fehlt"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Doppelte Spalte: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Grafiken aus externen Quellen"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "URL der Remote-Bilddatei"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "Das Herunterladen von Bildern von Remote-URLs ist nicht aktiviert"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Hintergrund-Prozess-Kontrolle fehlgeschlagen"
@@ -753,13 +753,13 @@ msgstr "Aufgegeben von"
#: build/api.py:114
msgid "Assigned To"
-msgstr ""
+msgstr "Zugewiesen zu"
#: build/api.py:275
msgid "Build must be cancelled before it can be deleted"
msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann"
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann"
msgid "Consumable"
msgstr "Verbrauchsmaterial"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "Optional"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr "Zugeordnet"
msgid "Available"
msgstr "Verfügbar"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Verfügbar"
msgid "Build Order"
msgstr "Bauauftrag"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -838,7 +838,7 @@ msgstr "Bauaufträge"
#: build/models.py:136
msgid "Assembly BOM has not been validated"
-msgstr ""
+msgstr "Die Stückliste wurde noch nicht kontrolliert"
#: build/models.py:143
msgid "Build order cannot be created for an inactive part"
@@ -866,7 +866,7 @@ msgstr "Bauauftragsreferenz"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr "Benutzer oder Gruppe verantwortlich für diesen Bauauftrag"
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Externer Link"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
@@ -1110,7 +1110,7 @@ msgstr "Bauauftrag {build} wurde fertiggestellt"
msgid "A build order has been completed"
msgstr "Ein Bauauftrag wurde fertiggestellt"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "kein Endprodukt angegeben"
@@ -1122,37 +1122,37 @@ msgstr "Endprodukt bereits hergstellt"
msgid "Build output does not match Build Order"
msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr "Menge kann nicht größer als die Ausgangsmenge sein"
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, 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:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr "Objekt bauen"
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr "Objekt bauen"
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr "Objekt bauen"
msgid "Quantity"
msgstr "Anzahl"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr "Erforderliche Menge für Auftrag"
-#: build/models.py:1586
+#: build/models.py:1597
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:1595
+#: build/models.py:1606
#, 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:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "BestandObjekt ist zu oft zugewiesen"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein"
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein"
msgid "Stock Item"
msgstr "Lagerartikel"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Quell-Lagerartikel"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Installiere in"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Ziel-Lagerartikel"
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr "Name des Teils"
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "Seriennummer für dieses Endprodukt eingeben"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr "Lagerort für fertige Endprodukte"
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr "Für Zuweisung von verfolgten Teilen muss ein Endprodukt angegeben sein"
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Endprodukt kann bei Zuweisung nicht-verfolgter Teile nicht angegeben werden"
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr "Zuweisungen müssen angegeben werden"
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr "Verpackungen"
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr "Teil-ID"
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr "Teil IPN"
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr "Seriennummer"
msgid "Allocated Quantity"
msgstr "Zugewiesene Menge"
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr "Verfügbare Menge"
@@ -1667,13 +1667,13 @@ msgstr "Nachverfolgbar"
msgid "Inherited"
msgstr "Vererbt"
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046
#: templates/js/translated/build.js:2714
msgid "Allow Variants"
msgstr "Varianten zulassen"
-#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr "Stücklisten-Position"
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr "Zugewiesener Bestand"
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr "Zugewiesener Bestand"
msgid "On Order"
msgstr "Bestellt"
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr "In Produktion"
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr "Externes Lager"
@@ -1745,7 +1745,7 @@ msgstr "Storniert"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Fertig"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr "Bauauftrag löschen"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr "Fertiggestellte Endprodukte"
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr "Zugewiesene Teile"
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr "Unfertige Endprodukte"
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr "Link"
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr "Datei"
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr "Benutzer hat keine Berechtigung zum Löschen des Anhangs"
@@ -2352,8 +2349,8 @@ msgstr "Wie oft Wechselkurse aktualisiert werden sollen (auf Null zum Deaktivier
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "Tage"
@@ -2581,9 +2578,9 @@ msgstr "Kategorie-Parametervorlage kopieren"
msgid "Copy category parameter templates when creating a part"
msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,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:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr "Komponente"
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Fehler, die beim Erstellen von Berichten auftreten, protokollieren"
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "Seitengröße"
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr "Standardseitenformat für PDF-Bericht"
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr "Testberichte aktivieren"
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr "Erstellung von Test-Berichten aktivieren"
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr "Testberichte anhängen"
-
-#: common/models.py:1716
-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:1722
msgid "Globally Unique Serials"
msgstr "Global einzigartige Seriennummern"
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr "Seriennummern für Lagerartikel müssen global eindeutig sein"
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr "Seriennummern automatisch ausfüllen"
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr "Seriennummern in Formularen automatisch ausfüllen"
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr "Erschöpften Lagerartikel löschen"
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr "Legt das Standardverhalten fest, wenn ein Lagerartikel aufgebraucht ist"
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr "Losnummer Vorlage"
-#: common/models.py:1744
+#: common/models.py:1730
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:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr "Bestands-Ablauf"
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr "Ablaufen von Bestand ermöglichen"
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr "Abgelaufenen Bestand verkaufen"
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr "Verkauf von abgelaufenem Bestand erlaubt"
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr "Bestands-Stehzeit"
-#: common/models.py:1763
+#: common/models.py:1749
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:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr "Abgelaufenen Bestand verbauen"
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr "Verbauen von abgelaufenen Bestand erlaubt"
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr "Bestands-Eigentümerkontrolle"
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren"
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr "Standardsymbol für Lagerort"
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr "Standardsymbol für Lagerstandort (leer bedeutet kein Symbol)"
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr "Zeige installierte Lagerartikel"
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr "Anzeige der installierten Lagerartikel in Bestandstabellen"
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr "Prüfe BOM bei der Installation von Elementen"
-#: common/models.py:1796
+#: common/models.py:1782
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:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr "Erlaube Verschieben von \"nicht auf Lager\" Bestand"
-#: common/models.py:1804
+#: common/models.py:1790
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:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr "Bauauftragsreferenz-Muster"
-#: common/models.py:1812
+#: common/models.py:1798
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:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr "Verantwortlicher Besitzer erforderlich"
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr "Jeder Bestellung muss ein verantwortlicher Besitzer zugewiesen werden"
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr "Blockieren bis Test bestanden"
-#: common/models.py:1854
+#: common/models.py:1840
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:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr "Rücksendungen aktivieren"
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr "Aktivieren der Rücksendung-Funktion in der Benutzeroberfläche"
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr "Referenz Muster für Rücksendungen"
-#: common/models.py:1868
+#: common/models.py:1854
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:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr "Abgeschlossene Rücksendungen bearbeiten"
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr "Bearbeitung von Rücksendungen nach Abschluss erlauben"
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr "Auftragsreferenz-Muster"
-#: common/models.py:1890
+#: common/models.py:1876
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:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr "Auftrag Standardsendung"
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr "Erstelle eine Standardsendung für Aufträge"
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr "Abgeschlossene Aufträge bearbeiten"
-#: common/models.py:1910
+#: common/models.py:1896
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:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr "Versendete Bestellungen als abgeschlossen markieren"
-#: common/models.py:1918
+#: common/models.py:1904
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:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr "Bestellungsreferenz-Muster"
-#: common/models.py:1926
+#: common/models.py:1912
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:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr "Abgeschlossene Einkaufsaufträge bearbeiten"
-#: common/models.py:1940
+#: common/models.py:1926
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:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr "Bestellungen automatisch abschließen"
-#: common/models.py:1948
+#: common/models.py:1934
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:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr "Passwort vergessen aktivieren"
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren"
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr "Registrierung erlauben"
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren"
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr "SSO aktivieren"
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr "SSO auf den Anmeldeseiten aktivieren"
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr "SSO Selbstregistrierung aktivieren"
-#: common/models.py:1975
+#: common/models.py:1961
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:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr "SSO Gruppensynchronisation aktivieren"
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr "SSO Gruppenschlüssel"
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "Email-Adresse erforderlich"
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben"
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr "SSO-Benutzer automatisch ausfüllen"
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen"
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr "E-Mail zweimal"
-#: common/models.py:2028
+#: common/models.py:2014
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:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr "Passwort zweimal"
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen"
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr "Erlaubte Domains"
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Anmeldung auf bestimmte Domänen beschränken (kommagetrennt, beginnend mit @)"
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr "Gruppe bei Registrierung"
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr "MFA erzwingen"
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden."
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr "Plugins beim Start prüfen"
-#: common/models.py:2063
+#: common/models.py:2049
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:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr "Nach Plugin-Aktualisierungen suchen"
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Periodische Überprüfungen auf Updates für installierte Plugins aktivieren"
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr "URL-Integration aktivieren"
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr "Plugins zum Hinzufügen von URLs aktivieren"
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr "Navigations-Integration aktivieren"
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr "Plugins zur Integration in die Navigation aktivieren"
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr "App-Integration aktivieren"
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr "Plugins zum Hinzufügen von Apps aktivieren"
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr "Terminplan-Integration aktivieren"
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr "Geplante Aufgaben aktivieren"
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr "Ereignis-Integration aktivieren"
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren"
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr "Projektcodes aktivieren"
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr "Aktiviere Projektcodes für die Verfolgung von Projekten"
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr "Inventurfunktionen"
-#: common/models.py:2121
+#: common/models.py:2114
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:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr "Externe Standorte ausschließen"
-#: common/models.py:2129
+#: common/models.py:2122
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:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr "Automatische Inventur-Periode"
-#: common/models.py:2137
+#: common/models.py:2130
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:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr "Löschintervall für Berichte"
-#: common/models.py:2145
+#: common/models.py:2138
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:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr "Vollständige Namen von Benutzern anzeigen"
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr "Vollständigen Namen von Benutzern anstatt Benutzername anzeigen"
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr "Teststation-Daten aktivieren"
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr "Teststation-Datenerfassung für Testergebnisse aktivieren"
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr "Inaktive Teile ausblenden"
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr "Ausblenden inaktiver Teile in den auf der Startseite angezeigten Ergebnissen"
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr "Abonnierte Teile anzeigen"
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr "Zeige abonnierte Teile auf der Startseite"
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr "Abonnierte Kategorien anzeigen"
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr "Zeige abonnierte Teilkategorien auf der Startseite"
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr "Neueste Teile anzeigen"
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr "Zeige neueste Teile auf der Startseite"
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr "Zeige ungültige Stücklisten"
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite"
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr "Neueste Bestandänderungen anzeigen"
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite"
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr "Niedrigen Bestand anzeigen"
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr "Zeige geringen Bestand auf der Startseite"
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr "Lerren Bestand anzeigen"
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite"
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr "Benötigten Bestand anzeigen"
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr "Zeige Bestand für Bauaufträge auf der Startseite"
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr "Abgelaufenen Bestand anzeigen"
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr "Zeige abgelaufene Lagerbestände auf der Startseite"
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr "Alten Bestand anzeigen"
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr "Zeige überfällige Lagerartikel auf der Startseite"
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr "Ausstehende Bauaufträge anzeigen"
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr "Zeige ausstehende Bauaufträge auf der Startseite"
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr "Zeige überfällige Bauaufträge"
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr "Zeige überfällige Bauaufträge auf der Startseite"
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr "Ausstehende POs anzeigen"
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr "Zeige ausstehende POs auf der Startseite"
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr "Überfällige POs anzeigen"
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr "Zeige überfällige POs auf der Startseite"
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr "Ausstehende SOs anzeigen"
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr "Zeige ausstehende SOs auf der Startseite"
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr "Überfällige SOs anzeigen"
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr "Zeige überfällige SOs auf der Startseite"
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr "Ausstehende Versandaufträge anzeigen"
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr "Ausstehende Versandaufträge auf der Startseite anzeigen"
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr "Zeige Neuigkeiten"
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr "Neuigkeiten auf der Startseite anzeigen"
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr "Label inline anzeigen"
-#: common/models.py:2332
+#: common/models.py:2333
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:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr "Standard-Etikettendrucker"
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr "Einen standardmäßig ausgewählten Etikettendrucker konfigurieren"
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr "Berichte inline anzeigen"
-#: common/models.py:2348
+#: common/models.py:2349
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:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr "Teile suchen"
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr "Teile in der Suchvorschau anzeigen"
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr "Zulieferteile durchsuchen"
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr "Zuliefererteile in der Suchvorschau anzeigen"
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr "Herstellerteile durchsuchen"
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr "Herstellerteile in der Suchvorschau anzeigen"
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr "Inaktive Teile ausblenden"
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr "Inaktive Teile in der Suchvorschau ausblenden"
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr "Kategorien durchsuchen"
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr "Teilekategorien in der Suchvorschau anzeigen"
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr "Bestand durchsuchen"
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr "Lagerartikel in Suchvorschau anzeigen"
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr "Nicht verfügbare Artikel ausblenden"
-#: common/models.py:2392
+#: common/models.py:2393
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:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr "Lagerorte durchsuchen"
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr "Lagerorte in Suchvorschau anzeigen"
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr "Firmen durchsuchen"
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr "Firmen in der Suchvorschau anzeigen"
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr "Bauaufträge durchsuchen"
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr "Bauaufträge in der Suchvorschau anzeigen"
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr "Bestellungen durchsuchen"
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr "Bestellungen in der Suchvorschau anzeigen"
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr "Inaktive Bestellungen ausblenden"
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Inaktive Bestellungen in der Suchvorschau ausblenden"
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr "Aufträge durchsuchen"
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr "Aufträge in der Suchvorschau anzeigen"
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr "Inaktive Aufträge ausblenden"
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr "Inaktive Aufträge in der Suchvorschau ausblenden"
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr "Suche nach Rücksendungen"
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr "Rücksendungen in der Suchvorschau anzeigen"
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr "Inaktive Rücksendungen ausblenden"
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr "Inaktive Rücksendungen in der Suchvorschau ausblenden"
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr "Anzahl Suchergebnisse"
-#: common/models.py:2460
+#: common/models.py:2461
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:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr "Regex Suche"
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr "Reguläre Ausdrücke in Suchabfragen aktivieren"
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr "Ganzes Wort suchen"
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr "Suchabfragen liefern Ergebnisse für ganze Wortkombinationen"
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr "zeige Bestand in Eingabemasken"
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken"
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr "Esc-Taste schließt Formulare"
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr "Benutze die Esc-Taste, um Formulare zu schließen"
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr "Fixierter Navigationsleiste"
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr "Position der Navigationsleiste am oberen Bildschirmrand fixieren"
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr "Datumsformat"
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr "Bevorzugtes Format für die Anzeige von Daten"
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Teilzeitplanung"
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr "Zeige Zeitplanung für Teile"
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Inventur"
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr "Zeigt Inventur-Informationen an (falls die Inventurfunktion aktiviert ist)"
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr "Zeichenkettenlänge in Tabellen"
-#: common/models.py:2526
+#: common/models.py:2527
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:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr "Fehlerberichte empfangen"
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr "Benachrichtigungen bei Systemfehlern erhalten"
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr "Zuletzt verwendete Druckmaschinen"
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr "Die zuletzt benutzten Druckmaschinen für einen Benutzer speichern"
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Benutzer"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr "Preisstaffelungs Anzahl"
msgid "Price"
msgstr "Preis"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr "Stückpreis für die angegebene Anzahl"
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr "Endpunkt"
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr "Endpunkt, an dem dieser Webhook empfangen wird"
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr "Name für diesen Webhook"
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr "Ist dieser Webhook aktiv"
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr "Token"
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr "Token für Zugang"
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr "Geheimnis"
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr "Shared Secret für HMAC"
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr "Nachrichten-ID"
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr "Eindeutige Kennung für diese Nachricht"
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr "Host"
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr "Host von dem diese Nachricht empfangen wurde"
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr "Kopfzeile"
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr "Header dieser Nachricht"
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr "Body"
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr "Body dieser Nachricht"
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr "Endpunkt, über den diese Nachricht empfangen wurde"
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr "Bearbeitet"
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?"
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr "ID"
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Titel"
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr "Titel"
msgid "Link"
msgstr "Link"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr "Veröffentlicht"
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Zusammenfassung"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr "Gelesen"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr "Wurde diese Nachricht gelesen?"
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "Bild"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr "Bilddatei"
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr "Einheitsname muss eine gültige Kennung sein"
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr "Einheitsname"
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "Symbol"
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr "Optionales Einheitssymbol"
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr "Definition"
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr "Einheitsdefinition"
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Anhang"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Fehlende Datei"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Fehlender externer Link"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Datei zum Anhängen auswählen"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Kommentar"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr "Upload Datum"
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr "Datum der hochgeladenen Datei"
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr "Dateigröße"
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr "Dateigröße in Bytes"
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr "Ungültiger Modelltyp für Anhang angegeben"
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr "Schlüssel"
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr "Artikel wurden aus einer Rücksendung erhalten"
msgid "Error raised by plugin"
msgstr "Fehler in Plugin aufgetreten"
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr "Wird ausgeführt"
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr "Anstehende Aufgaben"
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr "Geplante Aufgaben"
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr "Fehlgeschlagene Aufgaben"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr "Aufgabe-ID"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr "Eindeutige Aufgaben-ID"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr "Sperren"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr "Sperrzeit"
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr "Aufgabenname"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr "Funktion"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr "Funktionsname"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr "Parameter"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr "Aufgaben-Parameter"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr "Schlüsselwort Parameter"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr "Schlüsselwort Parameter für Aufgaben"
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Dateiname"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr "Modelltyp"
-#: common/serializers.py:591
+#: common/serializers.py:607
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"
@@ -4447,12 +4444,12 @@ msgstr "Link zu Adressinformationen (extern)"
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr "Herstellerteil"
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Basisteil"
@@ -4463,8 +4460,8 @@ msgstr "Teil auswählen"
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr "Hersteller auswählen"
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr "Parametername"
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr "Parameterwert"
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr "Parametereinheit"
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr "Zulieferer"
msgid "Select supplier"
msgstr "Zulieferer auswählen"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr "Zuliefererbeschreibung des Teils"
msgid "Note"
msgstr "Notiz"
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr "Basiskosten"
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
@@ -4629,7 +4626,7 @@ msgstr "Packmenge"
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:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr "Vielfache"
@@ -4661,7 +4658,7 @@ msgstr "Standard-Währung für diesen Zulieferer"
msgid "Company Name"
msgstr "Firmenname"
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr "Bild löschen"
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr "Keine Lieferanteninformationen verfügbar"
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr "Verfügbarkeit der Teile aktualisieren"
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr "Wert"
@@ -5473,7 +5470,7 @@ msgstr "Bestellung ausstehend"
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr "Preis"
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr "Benutzer, der diese Sendung kontrolliert hat"
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr "Sendung"
@@ -5982,7 +5979,7 @@ msgstr "Position"
msgid "Line item does not match purchase order"
msgstr "Position stimmt nicht mit Kaufauftrag überein"
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr "Zielort für empfangene Teile auswählen"
@@ -6019,7 +6016,7 @@ msgstr "Barcode ist bereits in Verwendung"
msgid "An integer quantity must be provided for trackable parts"
msgstr "Ganzzahl für verfolgbare Teile erforderlich"
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr "Positionen müssen angegeben werden"
@@ -6051,39 +6048,39 @@ msgstr "Anzahl muss positiv sein"
msgid "Enter serial numbers to allocate"
msgstr "Seriennummern zum Zuweisen eingeben"
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr "Sendung wurde bereits versandt"
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr "Sendung ist nicht diesem Auftrag zugeordnet"
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr "Folgende Serienummern konnten nicht gefunden werden"
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
-msgstr "Folgende Seriennummern sind bereits zugewiesen"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
+msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr "Artikel der Bestellzeile zurücksenden"
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr "Artikel entspricht nicht der Rücksendeschrift"
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr "Artikel wurde bereits erhalten"
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr "Artikel können nur bei laufenden Bestellungen empfangen werden"
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr "Verkaufspreis-Währung"
@@ -6510,7 +6507,7 @@ 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:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr "Artikelbild"
msgid "Category ID"
msgstr "Kategorie-ID"
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr "Kategoriename"
@@ -6562,18 +6559,18 @@ msgstr "Minimaler Bestand"
msgid "Used In"
msgstr "Benutzt in"
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr "Im Bau"
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr "Minimale Kosten"
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr "Maximale Kosten"
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr "Pfad zur Kategorie"
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr "Übergeordnete IPN"
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Niedrigster Preis"
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr "Verwendet"
msgid "Default Location"
msgstr "Standard-Lagerort"
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Gesamtbestand"
@@ -6755,7 +6752,7 @@ msgstr "Gesamtbestand"
msgid "Input quantity for price calculation"
msgstr "Menge für die Preisberechnung"
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
@@ -6878,7 +6875,7 @@ msgstr "Teil mit diesem Namen, IPN und Revision existiert bereits."
msgid "Parts cannot be assigned to structural part categories!"
msgstr "Strukturellen Teilekategorien können keine Teile zugewiesen werden!"
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr "Name des Teils"
@@ -6906,7 +6903,7 @@ msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
msgid "Part category"
msgstr "Teile-Kategorie"
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr "Verantwortlicher Besitzer für dieses Teil"
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr "Letzte Inventur"
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr "Mehrere verkaufen"
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr "Währung für die Berechnung der Preise im Cache"
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr "Minimale Stücklisten Kosten"
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr "Minimale Kosten für Teile"
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr "Maximale Stücklisten Kosten"
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr "Maximale Kosten für Teile"
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr "Minimale Einkaufskosten"
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr "Minimale historische Kaufkosten"
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr "Maximale Einkaufskosten"
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr "Maximale historische Einkaufskosten"
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr "Minimaler interner Preis"
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr "Minimale Kosten basierend auf den internen Staffelpreisen"
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr "Maximaler interner Preis"
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr "Maximale Kosten basierend auf internen Preisstaffeln"
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr "Minimaler Lieferantenpreis"
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr "Mindestpreis für Teil von externen Lieferanten"
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr "Maximaler Lieferantenpreis"
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr "Maximaler Preis für Teil von externen Lieferanten"
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr "Minimale Variantenkosten"
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr "Berechnete minimale Kosten für Variantenteile"
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr "Maximale Variantenkosten"
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr "Berechnete maximale Kosten für Variantenteile"
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr "Mindestkosten überschreiben"
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr "Maximale Kosten überschreiben"
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr "Berechnete Mindestkosten"
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr "Berechnete Maximalkosten"
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr "Mindestverkaufspreis"
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr "Mindestverkaufspreis basierend auf Staffelpreisen"
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr "Maximaler Verkaufspreis"
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr "Maximalverkaufspreis basierend auf Staffelpreisen"
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr "Mindestverkaufskosten"
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr "Minimaler historischer Verkaufspreis"
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr "Maximale Verkaufskosten"
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr "Maximaler historischer Verkaufspreis"
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr "Teil für die Inventur"
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr "Stückzahl"
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr "Anzahl einzelner Bestandseinträge zum Zeitpunkt der Inventur"
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur"
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur"
msgid "Date"
msgstr "Datum"
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr "Datum der Inventur"
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr "Zusätzliche Notizen"
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr "Benutzer, der diese Inventur durchgeführt hat"
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr "Mindestbestandswert"
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr "Geschätzter Mindestwert des vorhandenen Bestands"
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr "Maximaler Bestandswert"
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr "Geschätzter Maximalwert des vorhandenen Bestands"
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr "Bericht"
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr "Inventur-Berichtsdatei (intern generiert)"
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr "Anzahl der Teile"
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr "Anzahl der Teile, die von der Inventur abgedeckt werden"
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr "Benutzer, der diesen Inventurbericht angefordert hat"
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
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:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr "Auswahl muss einzigartig sein"
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
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:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr "Testschlüssel"
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr "Vereinfachter Schlüssel zum Test"
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr "Aktiviert"
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr "Ist dieser Test aktiviert?"
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr "Benötigt"
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr "Erfordert Wert"
-#: part/models.py:3647
+#: part/models.py:3634
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:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:3654
+#: part/models.py:3641
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:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr "Auswahlmöglichkeiten"
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr "Gültige Optionen für diesen Test (durch Komma getrennt)"
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr "Checkbox-Parameter können keine Einheiten haben"
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr "Checkbox-Parameter können keine Auswahl haben"
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr "Physikalische Einheiten für diesen Parameter"
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr "Parameter-Beschreibung"
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr "Checkbox"
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr "Ist dieser Parameter eine Checkbox?"
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr "Gültige Optionen für diesen Parameter (durch Kommas getrennt)"
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr "Ungültige Auswahl für Parameterwert"
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr "Ausgangsteil"
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr "Teilnummer oder Teilname"
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr "Eindeutige Teil-ID"
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr "IPN-Wert des Teils"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr "Stufe"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr "Stücklistenebene"
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr "Untergeordnetes Teil"
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:4279
+#: part/models.py:4266
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:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr "überprüft"
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr "Diese Stücklistenposition wurde validiert"
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr "Wird vererbt"
-#: part/models.py:4321
+#: part/models.py:4308
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:4327
+#: part/models.py:4314
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:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr "Stücklisten Ersatzteile"
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein"
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr "Übergeordnete Stücklisten Position"
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr "Ersatzteil"
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:4647
+#: part/models.py:4640
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:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr "Doppelte Beziehung existiert bereits"
@@ -7571,326 +7568,326 @@ msgstr "Kaufwährung dieses Lagerartikels"
msgid "Number of parts using this template"
msgstr "Anzahl der Teile, die diese Vorlage verwenden"
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr "Keine Teile ausgewählt"
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr "Kategorie auswählen"
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr "Originalteil"
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr "Originalteil zum Duplizieren auswählen"
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr "Bild kopieren"
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr "Bild vom Originalteil kopieren"
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr "Stückliste kopieren"
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr "Stückliste vom Originalteil kopieren"
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr "Parameter kopieren"
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr "Parameterdaten vom Originalteil kopieren"
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr "Anmerkungen kopieren"
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr "Notizen aus Originalteil kopieren"
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr "Start-Bestandsmenge"
-#: part/serializers.py:527
+#: part/serializers.py:525
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:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr "Initialer Lagerort"
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr "Lagerstandort für dieses Teil angeben"
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr "Lieferant auswählen (oder leer lassen, um zu überspringen)"
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Hersteller auswählen (oder leer lassen, um zu überspringen)"
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr "Hersteller-Teilenummer"
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr "Ausgewählte Firma ist kein gültiger Lieferant"
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr "Ausgewählte Firma ist kein gültiger Hersteller"
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr "Herstellerteil mit dieser MPN existiert bereits"
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr "Lieferantenteil mit dieser SKU existiert bereits"
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr "Nicht zugewiesenes Lager"
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr "Alternatives Lager"
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr "Teil duplizieren"
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr "Initiale Daten von anderem Teil kopieren"
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr "Initialer Lagerbestand"
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr "Erstelle Teil mit Ausgangsbestand"
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr "Lieferanteninformationen"
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr "Lieferanteninformationen zu diesem Teil hinzufügen"
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr "Kategorieparameter kopieren"
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr "Parametervorlagen aus der ausgewählten Teilkategorie kopieren"
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr "Vorhandenes Bild"
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr "Dateiname eines vorhandenen Teilbildes"
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr "Bilddatei existiert nicht"
-#: part/serializers.py:1215
+#: part/serializers.py:1213
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:1225
+#: part/serializers.py:1223
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:1235
+#: part/serializers.py:1233
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:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr "Externen Bestand ausschließen"
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr "Lagerartikel an externen Orten ausschließen"
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr "Bericht generieren"
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr "Erstelle Berichtsdatei mit berechneten Inventurdaten"
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr "Teile aktualisieren"
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr "Angegebene Teile mit berechneten Inventurdaten aktualisieren"
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr "Inventur-Funktionalität ist nicht aktiviert"
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr "Berechneten Wert für Mindestpreis überschreiben"
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr "Mindestpreis Währung"
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr "Berechneten Wert für maximalen Preis überschreiben"
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr "Maximalpreis Währung"
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr "Aktualisieren"
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr "Preis für dieses Teil aktualisieren"
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, 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:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr "Mindestpreis darf nicht größer als der Maximalpreis sein"
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr "Der Maximalpreis darf nicht kleiner als der Mindestpreis sein"
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr "Herstellbar"
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr "Teil auswählen, von dem Stückliste kopiert wird"
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr "Bestehende Daten entfernen"
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen"
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr "Vererbtes einschließen"
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden"
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr "Ungültige Zeilen überspringen"
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen"
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr "Ersatzteile kopieren"
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren"
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr "Bestehende Stückliste löschen"
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen"
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr "Keine Teilspalte angegeben"
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr "Mehrere übereinstimmende Teile gefunden"
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr "Keine passenden Teile gefunden"
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr "Teil ist nicht als Komponente angelegt"
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr "Menge nicht angegeben"
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr "Ungültige Menge"
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr "Mindestens eine Stückliste-Position ist erforderlich"
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr "Benachrichtigungen für dieses Teil abonnieren"
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr "Label drucken"
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr "Kosteninformationen ansehen"
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr "Bestands-Aktionen"
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr "Zu Bauaufträgen zugeordnet"
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr "Zur Bestellung zugeordnet"
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr "letzte Seriennummer"
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr "Nach Seriennummer suchen"
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr "Bearbeiten"
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr "Teilbild nicht gefunden"
msgid "Part Pricing"
msgstr "Teilbepreisung"
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr "Das Plugin kann nicht gelöscht werden, da es derzeit aktiv ist"
@@ -8940,7 +8937,7 @@ msgstr "Rand"
msgid "Print a border around each label"
msgstr "Einen Rahmen um jedes Label drucken"
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr "Querformat"
@@ -9012,44 +9009,44 @@ msgstr "Unterstützt das Scannen von TME-Barcodes"
msgid "The Supplier which acts as 'TME'"
msgstr "Der Lieferant, der als 'TME' fungiert"
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr "Nur Mitarbeiter können Plugins verwalten"
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr "Plugin-Installation ist deaktiviert"
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr "Plugin wurde erfolgreich installiert"
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Plugin installiert in {path}"
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr "Plugin wurde nicht in der Registry gefunden"
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr "Plugin ist kein gepacktes Plugin"
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr "Plugin-Paketname nicht gefunden"
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr "Plugin-Deinstallation ist deaktiviert"
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "Plugin kann nicht deinstalliert werden, da es momentan aktiv ist"
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr "Plugin erfolgreich deinstallieren"
@@ -9098,7 +9095,7 @@ msgstr "Integriertes Plugin"
msgid "Package Plugin"
msgstr "Paket-Plugin"
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr "Beispiel-Währungswechsel-Plugin"
msgid "InvenTree Contributors"
msgstr "InvenTree Mitwirkende"
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr "Quell-URL"
@@ -9245,12 +9274,36 @@ msgstr "Konfiguration löschen"
msgid "Delete the plugin configuration from the database"
msgstr "Plugin-Konfiguration aus der Datenbank löschen"
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr "Keine korrekten Objekte für Vorlage gegeben"
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr "Fehler beim Drucken des Labels"
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr "Vorlagendatei '{template}' fehlt oder existiert nicht"
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr "Dateinamen-Muster"
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr "Filter"
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr "Seitengröße für PDF-Berichte"
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr "Bericht in Querformat anzeigen"
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr "Breite [mm]"
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr "Label-Breite in mm"
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr "Höhe [mm]"
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr "Label-Höhe in mm"
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr "Fortschritt"
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr "Ausgabedatei"
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr "Schnipsel"
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr "Berichts-Snippet"
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr "Snippet-Beschreibung"
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr "Ressource"
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr "Berichts-Ressource"
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr "Ressource-Beschreibung"
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr "Etiketten-Vorlage auswählen"
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr "Testergebnisse"
msgid "Test"
msgstr "Test"
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr "Ergebnis"
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr "Kunden ID"
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr "verbaut in"
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr "Löschen wenn leer"
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr "Ablaufdatum"
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr "Gültigkeitsdauer nach"
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr "überfällig"
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr "Bestand-Lagerorte"
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr "Besitzer"
@@ -9826,7 +9891,7 @@ msgstr "Quellbau"
msgid "Build for this stock item"
msgstr "Bauauftrag für diesen Lagerartikel"
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr "Verbraucht von"
@@ -9891,7 +9956,7 @@ msgstr "Anzahl stimmt nicht mit den Seriennummern überein"
msgid "Serial numbers already exist"
msgstr "Seriennummern existieren bereits"
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr "Testvorlage existiert nicht"
@@ -9939,67 +10004,67 @@ msgstr "Status-Codes müssen zusammenpassen"
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:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr "Eintrags-Notizen"
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr "Wert muss für diesen Test angegeben werden"
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr "Anhang muss für diesen Test hochgeladen werden"
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr "Testergebnis"
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr "Test Ausgabe Wert"
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr "Test Ergebnis Anhang"
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr "Test Notizen"
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr "Teststation"
-#: stock/models.py:2566
+#: stock/models.py:2561
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:2572
+#: stock/models.py:2567
msgid "Started"
msgstr "Gestartet"
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr "Der Zeitstempel des Teststarts"
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr "Fertiggestellt"
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr "Der Zeitstempel der Test-Beendigung"
@@ -10059,7 +10124,7 @@ msgstr "Die Test-Endzeit kann nicht früher als die Startzeit des Tests sein"
msgid "Serial number is too large"
msgstr "Seriennummer ist zu lang"
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr "Elternposition"
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "Packungsgröße beim Hinzufügen verwenden: Die definierte Menge ist die Anzahl der Pakete"
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr "abgelaufen"
@@ -10410,7 +10475,7 @@ msgstr "Dieser Lagerartikel hat keine Kinder"
msgid "Test Data"
msgstr "Testdaten"
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr "Test-Bericht"
@@ -10450,200 +10515,204 @@ msgstr "Lagerbestand lokalisieren"
msgid "Scan to Location"
msgstr "zu Lagerort einscannen"
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr "Druck Aktionen"
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr "Bestands-Anpassungs Aktionen"
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: 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
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr "Bestand hinzufügen"
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr "Bestand entfernen"
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr "Bestand serialisieren"
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: 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
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr "Kunden zuweisen"
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr "zu Bestand zurückgeben"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr "Lagerartikel deinstallieren"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr "Deinstallieren"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr "Lagerartikel installieren"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr "Installieren"
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr "in Variante ändern"
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr "Lagerartikel duplizieren"
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr "Lagerartikel bearbeiten"
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr "Lagerartikel löschen"
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Bauauftrag"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr "Kein Hersteller ausgewählt"
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr "Sie gehören nicht zu den Eigentümern dieses Objekts und können es nicht ändern."
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr "Nur Leserechte"
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr "Dieser Lagerartikel ist nicht verfügbar"
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr "Dieser Lagerartikel wird gerade hergestellt und kann nicht geändert werden."
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr "Ändern des Lagerartikel in der Bauauftrag-Ansicht."
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr "Dieser Lagerartikel ist einem Auftrag zugewiesen"
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr "Dieser Lagerartikel ist einem Bauauftrag zugewiesen"
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr "Dieser Lagerartikel hat eine eindeutige Seriennummer, der Bestand kann nicht geändert werden"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr "vorherige Seite"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr "Zur vorherigen Seriennummer wechseln"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr "nächste Seite"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr "Zur nächsten Seriennummer wechseln"
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr "Kein Lagerort gesetzt"
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr "Tests"
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr "Dieser Lagerartikel hat nicht alle Tests bestanden"
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr "Dieser Lagerartikel lief am %(item.expiry_date)s ab"
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Dieser Lagerartikel läuft am %(item.expiry_date)s ab"
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr "Keine Inventur ausgeführt"
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr "Lagerartikel"
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr "Lagerstatus bearbeiten"
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr "Lagerartikel QR-Code"
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr "Barcode mit Lagerartikel verknüpfen"
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr "Wählen Sie eine der unten aufgeführten Teilvarianten aus."
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr "Warnung"
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden"
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr "Lagerartikel umwandeln"
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr "Zurück ins Lager"
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr "Standorttyp löschen"
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr "Neuer Standorttyp"
@@ -11367,7 +11436,7 @@ msgstr "Auftrags-Einstellungen"
msgid "Stock Settings"
msgstr "Bestands-Einstellungen"
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr "Lagerstandort Elemente"
@@ -11852,23 +11921,23 @@ msgstr "Anhang hinzufügen"
msgid "Barcode Identifier"
msgstr "Barcode-Bezeichner"
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr "Server-Neustart erforderlich"
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr "Eine Konfigurationsoption wurde geändert, die einen Neustart des Servers erfordert"
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr "Bitte kontaktieren Sie Ihren Administrator für mehr Informationen"
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr "Ausstehende Datenbankmigrationen"
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr "Es gibt ausstehende Datenbankmigrationen, die Ihre Aufmerksamkeit erfordern"
@@ -13946,10 +14015,6 @@ msgstr "Position bearbeiten"
msgid "Delete line item"
msgstr "Position löschen"
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po
index b39ad7ec2382..e8ab13745a7d 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Κινέζικα (Παραδοσιακά)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] Σύνδεση στην εφαρμογή"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Διπλότυπα ονόματα δεν μπορούν να υπάρχ
msgid "Invalid choice"
msgstr "Μη έγκυρη επιλογή"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Όνομα"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Σφάλμα διακομιστή"
msgid "An error has been logged by the server."
msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Πρέπει να είναι αριθμός"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Επιλέξτε νόμισμα από τις διαθέσιμες επ
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "Δεν έχετε άδεια να αλλάξετε αυτόν τον ρόλο χρήστη."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Μόνο υπερχρήστες (superusers) μπορούν να δημιουργήσουν νέους χρήστες"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "Ο λογαριασμός σας δημιουργήθηκε."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "Παρακαλούμε χρησιμοποιήστε τη λειτουργία επαναφοράς κωδικού πρόσβασης για να συνδεθείτε"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "Καλώς ήρθατε στο InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Μη έγκυρη τιμή"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Αρχείο Δεδομένων"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Επιλέξτε ένα αρχείο για ανέβασμα"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Μη υποστηριζόμενος τύπος αρχείου"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Το αρχείο είναι πολύ μεγάλο"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Δεν βρέθηκαν στήλες στο αρχείο"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Δεν βρέθηκαν γραμμές δεδομένων στο αρχείο"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Δεν παρασχέθηκαν σειρές δεδομένων"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Δεν δόθηκαν στήλες δεδομένων"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Λείπει απαιτούμενη στήλη: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Διπλή στήλη: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Απομακρυσμένες Εικόνες"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "Διεύθυνση URL του αρχείου απομακρυσμένης εικόνας"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "Η λήψη εικόνων από απομακρυσμένο URL δεν είναι ενεργοποιημένη"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Ο έλεγχος εργασίας στο παρασκήνιο απέτυχε"
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγραφεί"
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγρα
msgid "Consumable"
msgstr "Αναλώσιμο"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "Προαιρετικό"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr "Κατανεμημένο"
msgid "Available"
msgstr "Διαθέσιμο"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Διαθέσιμο"
msgid "Build Order"
msgstr "Σειρά Κατασκευής"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr "Αναφορά Παραγγελίας Κατασκευής"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr "Χρήστης ή ομάδα υπεύθυνη για αυτή την ε
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Εξωτερικοί σύνδεσμοι"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Σύνδεσμος προς εξωτερική διεύθυνση URL"
@@ -1110,7 +1110,7 @@ msgstr "Η παραγγελία κατασκευής {build} έχει ολοκλ
msgid "A build order has been completed"
msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "Δεν καθορίστηκε έξοδος κατασκευής"
@@ -1122,37 +1122,37 @@ msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθ
msgid "Build output does not match Build Order"
msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής"
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr "Η ποσότητα δεν μπορεί να είναι μεγαλύτερη από την παραγόμενη ποσότητα"
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "Το προϊόν κατασκευής {serial} δεν έχει περάσει όλες τις απαιτούμενες δοκιμές"
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr "Αντικείμενο κατασκευής"
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr "Αντικείμενο κατασκευής"
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr "Αντικείμενο κατασκευής"
msgid "Quantity"
msgstr "Ποσότητα"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr "Απαιτούμενη ποσότητα για την εντολή κατασκευής"
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Το στοιχείο κατασκευής πρέπει να ορίζει μια έξοδο κατασκευής, καθώς το κύριο τμήμα επισημαίνεται ως ανιχνεύσιμο"
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Η καταχωρημένη ποσότητα ({q}) δεν πρέπει να υπερβαίνει τη διαθέσιμη ποσότητα αποθέματος ({a})"
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμημένο"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "Η ποσότητα πρέπει να είναι 1 για σειριακό απόθεμα"
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr "Το επιλεγμένο στοιχείο αποθέματος δεν ταιριάζει με τη γραμμή ΤΥ"
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr "Το επιλεγμένο στοιχείο αποθέματος δεν
msgid "Stock Item"
msgstr "Στοιχείο Αποθέματος"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Στοιχείο πηγαίου αποθέματος"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Ποσότητα αποθέματος για διάθεση για κατασκευή"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Εγκατάσταση σε"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Αποθήκη προορισμού"
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr "Τοποθεσία για ολοκληρωμένα προϊόντα κα
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "Ακυρώθηκε"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Ολοκληρώθηκε"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr "Διαγραφή Κατασκευής"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr "Ολοκληρωμένα Προϊόντα"
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Χρήστης"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr "Σύνδεσμος"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Συνημμένο"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Το αρχείο λείπει"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Λείπει ο εξωτερικός σύνδεσμος"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Επιλέξτε αρχείο για επισύναψη"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Σχόλιο"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Όνομα αρχείου"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Κατασκευή"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po
index 7208eb3b4a1e..43a03706dfe4 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-08-29 07:07+0000\n"
+"POT-Creation-Date: 2024-09-16 01:08+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -66,9 +66,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -365,7 +365,7 @@ msgstr ""
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -420,9 +420,9 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -447,10 +447,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -518,12 +518,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -537,43 +537,43 @@ msgstr ""
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -586,89 +586,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -760,7 +760,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -768,7 +768,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -778,7 +778,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -817,7 +817,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -826,7 +826,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -867,7 +867,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -893,11 +893,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1064,12 +1064,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr ""
@@ -1111,7 +1111,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1123,37 +1123,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1164,9 +1164,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1195,41 +1195,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1242,19 +1242,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1263,7 +1263,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1324,10 +1324,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1391,7 +1391,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1523,7 +1523,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1591,7 +1591,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1601,12 +1601,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1626,7 +1626,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1645,7 +1645,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1668,13 +1668,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1685,7 +1685,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1693,13 +1693,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1717,7 +1717,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1746,7 +1746,7 @@ msgstr ""
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr ""
@@ -1850,9 +1850,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1932,7 +1929,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1992,7 +1989,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2149,19 +2146,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2353,8 +2350,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2582,9 +2579,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2599,7 +2596,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2824,7 +2821,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2833,914 +2830,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr ""
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3748,96 +3745,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3854,217 +3851,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr ""
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr ""
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr ""
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr ""
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr ""
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4102,75 +4099,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr ""
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4448,12 +4445,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4464,8 +4461,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4480,7 +4477,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4506,7 +4503,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4517,7 +4514,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4531,7 +4528,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4554,9 +4551,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4571,7 +4568,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4592,7 +4589,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4604,11 +4601,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4630,7 +4627,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4662,7 +4659,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4736,7 +4733,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4940,7 +4937,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5031,7 +5028,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5085,7 +5082,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5216,7 +5213,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5474,7 +5471,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5695,7 +5692,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5769,7 +5766,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5983,7 +5980,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6020,7 +6017,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6052,39 +6049,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6511,7 +6508,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6538,7 +6535,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6563,18 +6560,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6593,7 +6590,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6620,13 +6617,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6720,8 +6717,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6747,7 +6744,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6756,7 +6753,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6879,7 +6876,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6907,7 +6904,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7013,164 +7010,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7182,363 +7179,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7572,326 +7569,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8217,7 +8214,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8227,7 +8224,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8298,12 +8295,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8323,7 +8320,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8450,7 +8447,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8605,7 +8602,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8941,7 +8938,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9013,44 +9010,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9099,7 +9096,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9168,6 +9165,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9246,12 +9275,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9282,7 +9335,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9319,135 +9376,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9518,7 +9583,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9599,7 +9664,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9624,7 +9689,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9666,7 +9731,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9716,7 +9781,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9827,7 +9892,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9892,7 +9957,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9940,67 +10005,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10060,7 +10125,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10072,7 +10137,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10411,7 +10476,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10451,200 +10516,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11311,7 +11380,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11368,7 +11437,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11853,23 +11922,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13947,10 +14016,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po
index fbe8db7f21e3..10129b40b83d 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -28,7 +28,7 @@ msgstr "El usuario no tiene permiso para ver este modelo"
#: InvenTree/conversion.py:161
#, python-brace-format
msgid "Invalid unit provided ({unit})"
-msgstr ""
+msgstr "Unidad proporcionada no válida ({unit})"
#: InvenTree/conversion.py:178
msgid "No value provided"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -126,7 +126,7 @@ msgstr "Debe escribir el mismo correo electrónico cada vez."
#: InvenTree/forms.py:221
msgid "MFA Registration is disabled."
-msgstr ""
+msgstr "Registro MFA está deshabilitado."
#: InvenTree/forms.py:259 InvenTree/forms.py:267
msgid "The provided primary email address is not valid."
@@ -213,7 +213,7 @@ msgstr "La URL proporcionada no es un archivo de imagen válido"
#: InvenTree/locales.py:18
msgid "Arabic"
-msgstr ""
+msgstr "Árabe"
#: InvenTree/locales.py:19
msgid "Bulgarian"
@@ -249,7 +249,7 @@ msgstr "Español (México)"
#: InvenTree/locales.py:27
msgid "Estonian"
-msgstr ""
+msgstr "Estoniano"
#: InvenTree/locales.py:28
msgid "Farsi / Persian"
@@ -269,7 +269,7 @@ msgstr "Hebreo"
#: InvenTree/locales.py:32
msgid "Hindi"
-msgstr ""
+msgstr "Hindú"
#: InvenTree/locales.py:33
msgid "Hungarian"
@@ -289,7 +289,7 @@ msgstr "Coreano"
#: InvenTree/locales.py:37
msgid "Latvian"
-msgstr ""
+msgstr "Latvian"
#: InvenTree/locales.py:38
msgid "Dutch"
@@ -313,7 +313,7 @@ msgstr "Portugués (Brasileño)"
#: InvenTree/locales.py:43
msgid "Romanian"
-msgstr ""
+msgstr "Rumano"
#: InvenTree/locales.py:44
msgid "Russian"
@@ -345,7 +345,7 @@ msgstr "Turco"
#: InvenTree/locales.py:51
msgid "Ukrainian"
-msgstr ""
+msgstr "Ucraniano"
#: InvenTree/locales.py:52
msgid "Vietnamese"
@@ -362,9 +362,9 @@ msgstr "Chino (Tradicional)"
#: InvenTree/magic_login.py:28
#, python-brace-format
msgid "[{site_name}] Log in to the app"
-msgstr ""
+msgstr "[{site_name}] Iniciar sesión en la aplicación"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Los nombres duplicados no pueden existir bajo el mismo padre"
msgid "Invalid choice"
msgstr "Selección no válida"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Nombre"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Error de servidor"
msgid "An error has been logged by the server."
msgstr "Se ha registrado un error por el servidor."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Debe ser un número válido"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Seleccionar moneda de las opciones disponibles"
msgid "Username"
msgstr "Nombre de usuario"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "Nombre"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
-msgstr ""
+msgstr "Nombre del usuario"
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "Apellido"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
-msgstr ""
+msgstr "Apellido del usuario"
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
-msgstr ""
+msgstr "Dirección de correo del usuario"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
-msgstr ""
+msgstr "Personal"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
-msgstr ""
+msgstr "Tiene este usuario permisos de personal"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
-msgstr ""
+msgstr "Superusuario"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
-msgstr ""
+msgstr "Es este usuario un superusuario"
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr "Activo"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
-msgstr ""
+msgstr "Esta cuenta de usuario está activa"
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "No tiene permiso para cambiar este rol de usuario."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Solo los superusuarios pueden crear nuevos usuarios"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "Su cuenta ha sido creada."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
-msgstr ""
+msgstr "Por favor, utilice la función de restablecer la contraseña para iniciar sesión"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "Bienvenido a InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Valor inválido"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Archivo de datos"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Seleccione el archivo para subir"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Tipo de archivo no soportado"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "El archivo es demasiado grande"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "No hay columnas en el archivo"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "No hay filas de datos en el archivo"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "No se proporcionaron filas de datos"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "No hay columnas de datos proporcionadas"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Falta la columna requerida: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Columna duplicada: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Imagen remota"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "URL de imagen remota"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "La descarga de imágenes desde la URL remota no está habilitada"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Falló la comprobación en segundo plano del worker"
@@ -742,7 +742,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:633
#: templates/js/translated/table_filters.js:674
msgid "Assigned to me"
-msgstr ""
+msgstr "Asignado a mí"
#: build/api.py:95 build/templates/build/build_base.html:205
#: build/templates/build/detail.html:115
@@ -753,13 +753,13 @@ msgstr "Emitido por"
#: build/api.py:114
msgid "Assigned To"
-msgstr ""
+msgstr "Asignadas a"
#: build/api.py:275
msgid "Build must be cancelled before it can be deleted"
msgstr "La compilación debe cancelarse antes de poder ser eliminada"
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "La compilación debe cancelarse antes de poder ser eliminada"
msgid "Consumable"
msgstr "Consumible"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "Opcional"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr "Asignadas"
msgid "Available"
msgstr "Disponible"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Disponible"
msgid "Build Order"
msgstr "Construir órden"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -838,15 +838,15 @@ msgstr "Construir órdenes"
#: build/models.py:136
msgid "Assembly BOM has not been validated"
-msgstr ""
+msgstr "BOM de ensamblado no ha sido validado"
#: build/models.py:143
msgid "Build order cannot be created for an inactive part"
-msgstr ""
+msgstr "La orden de construcción no puede ser creado para una parte inactiva"
#: build/models.py:150
msgid "Build order cannot be created for an unlocked part"
-msgstr ""
+msgstr "La orden de construcción no puede ser creada para una parte desbloqueada"
#: build/models.py:164
msgid "Invalid choice for parent build"
@@ -866,7 +866,7 @@ msgstr "Número de orden de construcción o armado"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "Orden de Construcción o Armado a la que se asigna"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr "Usuario o grupo responsable de esta orden de construcción"
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Link externo"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Enlace a URL externa"
@@ -1099,7 +1099,7 @@ msgstr "Código de proyecto para esta orden de ensamble"
#: build/models.py:652 build/models.py:779
msgid "Failed to offload task to complete build allocations"
-msgstr ""
+msgstr "No se pudo descargar la tarea para completar las asignaciones de construcción"
#: build/models.py:674
#, python-brace-format
@@ -1110,7 +1110,7 @@ msgstr "El pedido {build} ha sido procesado"
msgid "A build order has been completed"
msgstr "Pedido #[order] ha sido procesado"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "No se ha especificado salida de construcción"
@@ -1122,37 +1122,37 @@ msgstr "La construcción de la salida ya está completa"
msgid "Build output does not match Build Order"
msgstr "La salida de la construcción no coincide con el orden de construcción"
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "La cantidad debe ser mayor que cero"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr "La cantidad no puede ser mayor que la cantidad de salida"
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
-msgstr ""
+msgstr "La construcción {serial} no ha pasado todas las pruebas requeridas"
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
-msgstr ""
+msgstr "Construir línea de pedido"
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr "Ensamblar equipo"
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr "Ensamblar equipo"
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr "Ensamblar equipo"
msgid "Quantity"
msgstr "Cantidad"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr "Cantidad requerida para orden de ensamble"
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Item de construcción o armado debe especificar un resultado o salida, ya que la parte maestra está marcada como rastreable"
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Cantidad asignada ({q}) no debe exceder la cantidad disponible de stock ({a})"
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "Artículo de stock sobreasignado"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "Cantidad asignada debe ser mayor que cero"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "La cantidad debe ser 1 para el stock serializado"
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr "El artículo de almacén selelccionado no coincide con la línea BOM"
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,43 +1241,43 @@ msgstr "El artículo de almacén selelccionado no coincide con la línea BOM"
msgid "Stock Item"
msgstr "Artículo de stock"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Producto original de stock"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Cantidad de stock a asignar para construir"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Instalar en"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Artículo de stock de destino"
#: build/serializers.py:107
msgid "Build Level"
-msgstr ""
+msgstr "Nivel de construcción"
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr "Nombre de parte"
#: build/serializers.py:127
msgid "Project Code Label"
-msgstr ""
+msgstr "Etiqueta del código del proyecto"
#: build/serializers.py:133
msgid "Create Child Builds"
-msgstr ""
+msgstr "Crear construcciones hijas"
#: build/serializers.py:134
msgid "Automatically generate child build orders"
-msgstr ""
+msgstr "Generar automáticamente órdenes de construcción hijas"
#: build/serializers.py:216 build/serializers.py:968
#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "Introduzca los números de serie de salidas de construcción"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1344,7 +1344,7 @@ msgstr "Ubicación"
#: build/serializers.py:360
msgid "Stock location for build output"
-msgstr ""
+msgstr "Ubicación de stock para objetos construidos"
#: build/serializers.py:374
msgid "Auto Allocate Serial Numbers"
@@ -1356,7 +1356,7 @@ msgstr "Asignar automáticamente los artículos requeridos con números de serie
#: build/serializers.py:390
msgid "Serial numbers must be provided for trackable parts"
-msgstr ""
+msgstr "Los números de serie deben ser proporcionados para las partes rastreables"
#: build/serializers.py:415 stock/api.py:1024
msgid "The following serial numbers already exist or are invalid"
@@ -1390,7 +1390,7 @@ msgstr "Ubicación para las salidas de construcción completadas"
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1411,11 +1411,11 @@ msgstr "Completar salidas si el inventario no se ha asignado completamente"
#: build/serializers.py:698
msgid "Consume Allocated Stock"
-msgstr ""
+msgstr "Consumir Stock Asignado"
#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
-msgstr ""
+msgstr "Consume cualquier stock que ya ha sido asignado a esta construcción"
#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
@@ -1475,11 +1475,11 @@ msgstr "La cantidad de construcción requerida aún no se ha completado"
#: build/serializers.py:818
msgid "Build order has open child build orders"
-msgstr ""
+msgstr "La orden de construcción tiene órdenes hijas de construcción abiertas"
#: build/serializers.py:821
msgid "Build order must be in production state"
-msgstr ""
+msgstr "Orden de construcción debe estar en estado de producción"
#: build/serializers.py:824 templates/js/translated/build.js:307
msgid "Build order has incomplete outputs"
@@ -1522,7 +1522,7 @@ msgstr "La salida de la construcción debe especificarse para la asignación de
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "La salida de construcción no se puede especificar para la asignación de partes no rastreadas"
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr "Debe proporcionarse la adjudicación de artículos"
@@ -1564,11 +1564,11 @@ msgstr "Asignar artículos de la BOM opcionales para construir la orden"
#: build/serializers.py:1142
msgid "Failed to start auto-allocation task"
-msgstr ""
+msgstr "Error al iniciar la tarea de asignación automática"
#: build/serializers.py:1225
msgid "Supplier Part Number"
-msgstr ""
+msgstr "Número de pieza del proveedor"
#: build/serializers.py:1226 company/models.py:503
msgid "Manufacturer Part Number"
@@ -1581,16 +1581,16 @@ msgstr "Nombre de localización"
#: build/serializers.py:1228
msgid "Build Reference"
-msgstr ""
+msgstr "Referencia de orden de Ensamblado"
#: build/serializers.py:1229
msgid "BOM Reference"
-msgstr ""
+msgstr "Referencia BOM"
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr "Paquetes"
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr "ID de Parte"
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr "IPN de la parte"
@@ -1616,16 +1616,16 @@ msgstr "Descripción de parte"
#: build/serializers.py:1239
msgid "BOM Part ID"
-msgstr ""
+msgstr "ID de la parte BOM"
#: build/serializers.py:1240
msgid "BOM Part Name"
-msgstr ""
+msgstr "Nombre de parte la BOM"
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1642,19 +1642,19 @@ msgstr "Número de serie"
#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167
#: templates/js/translated/build.js:2519
msgid "Allocated Quantity"
-msgstr ""
+msgstr "Cantidad Asignada"
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr "Cantidad disponible"
#: build/serializers.py:1327
msgid "Part Category ID"
-msgstr ""
+msgstr "ID de la categoría por pieza"
#: build/serializers.py:1328
msgid "Part Category Name"
-msgstr ""
+msgstr "Nombre de la categoría por pieza"
#: build/serializers.py:1335 common/models.py:1515 part/admin.py:113
#: part/models.py:1178 templates/js/translated/table_filters.js:150
@@ -1665,15 +1665,15 @@ msgstr "Rastreable"
#: build/serializers.py:1336
msgid "Inherited"
-msgstr ""
+msgstr "Heredado"
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046
#: templates/js/translated/build.js:2714
msgid "Allow Variants"
msgstr "Permitir variantes"
-#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr "Item de Lista de Materiales"
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr "Stock Asignado"
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr "Stock Asignado"
msgid "On Order"
msgstr "En pedido"
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr "En producción"
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1706,19 +1706,19 @@ msgstr "Stock Disponible"
#: build/serializers.py:1369
msgid "Available Substitute Stock"
-msgstr ""
+msgstr "Stock sustituto disponible"
#: build/serializers.py:1370
msgid "Available Variant Stock"
-msgstr ""
+msgstr "Stock variable disponible"
#: build/serializers.py:1371
msgid "Total Available Stock"
-msgstr ""
+msgstr "Stock total disponible"
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
-msgstr ""
+msgstr "Stock externo"
#: build/status_codes.py:11 generic/states/tests.py:21
#: generic/states/tests.py:131 order/status_codes.py:12
@@ -1734,7 +1734,7 @@ msgstr "Producción"
#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49
#: order/status_codes.py:79
msgid "On Hold"
-msgstr ""
+msgstr "En espera"
#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51
#: order/status_codes.py:82
@@ -1745,7 +1745,7 @@ msgstr "Cancelado"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Terminado"
@@ -1838,7 +1838,7 @@ msgstr "Construcción duplicada"
#: build/templates/build/build_base.html:76
msgid "Hold Build"
-msgstr ""
+msgstr "Mantener Construcción"
#: build/templates/build/build_base.html:79
msgid "Cancel Build"
@@ -1849,12 +1849,9 @@ msgid "Delete Build"
msgstr "Eliminar construcción o armado"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
-msgstr ""
+msgstr "Emitir Construcción"
#: build/templates/build/build_base.html:91
#: build/templates/build/build_base.html:92
@@ -1931,7 +1928,7 @@ msgstr "Salidas completadas"
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1947,11 +1944,11 @@ msgstr "Prioridad"
#: build/templates/build/build_base.html:267
msgid "Issue Build Order"
-msgstr ""
+msgstr "Emitir Orden de Construcción"
#: build/templates/build/build_base.html:271
msgid "Issue this Build Order?"
-msgstr ""
+msgstr "¿Emitir esta orden de construcción?"
#: build/templates/build/build_base.html:302
msgid "Delete Build Order"
@@ -1963,7 +1960,7 @@ msgstr "Código QR de la Orden de Trabajo"
#: build/templates/build/build_base.html:324
msgid "Link Barcode to Build Order"
-msgstr ""
+msgstr "Enlazar código de barras para construir el orden"
#: build/templates/build/detail.html:15
msgid "Build Details"
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr "Partes asignadas"
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,25 +2145,25 @@ msgstr "Salidas incompletas"
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
#: common/currency.py:132
msgid "Invalid currency code"
-msgstr ""
+msgstr "Código de divisa inválido"
#: common/currency.py:134
msgid "Duplicate currency code"
@@ -2228,7 +2225,7 @@ msgstr "Fecha y hora de la última actualización"
#: common/models.py:122
msgid "Site URL is locked by configuration"
-msgstr ""
+msgstr "La URL del sitio está bloqueada por su configuración"
#: common/models.py:152
msgid "Unique project code"
@@ -2336,7 +2333,7 @@ msgstr "Seleccione la moneda base para los cálculos de precios"
#: common/models.py:1285
msgid "Supported Currencies"
-msgstr ""
+msgstr "Monedas admitidas"
#: common/models.py:1286
msgid "List of supported currency codes"
@@ -2352,8 +2349,8 @@ msgstr "Con qué frecuencia actualizar los tipos de cambio (establecer a cero pa
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "días"
@@ -2581,9 +2578,9 @@ msgstr "Copiar plantillas de parámetros de categoría"
msgid "Copy category parameter templates when creating a part"
msgstr "Copiar plantillas de parámetros de categoría al crear una parte"
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr "Las partes pueden ser ensambladas desde otros componentes por defecto"
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr "Componente"
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "Tamaño de página"
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr "Tamaño de página predeterminado para informes PDF"
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr "Habilitar informes de prueba"
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr "Habilitar generación de informes de prueba"
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr "Adjuntar informes de prueba"
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr "Al imprimir un informe de prueba, adjuntar una copia del informe de prueba al artículo de almacén asociado"
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr "Seriales únicos globalmente"
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr "Los números de serie para los artículos de inventario deben ser únicos globalmente"
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr "Autollenar números de serie"
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr "Autorellenar números de serie en formularios"
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr "Eliminar existencias agotadas"
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr "Plantilla de código de lote"
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr "Plantilla para generar códigos de lote por defecto para artículos de almacén"
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr "Expiración de stock"
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr "Habilitar la funcionalidad de expiración de stock"
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr "Vender existencias caducadas"
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr "Permitir venta de existencias caducadas"
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr "Tiempo histórico de Stock"
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr "Número de días de artículos de stock se consideran obsoletos antes de caducar"
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr "Crear Stock Caducado"
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr "Permitir crear con stock caducado"
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr "Control de Stock"
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr "Habilitar control de propiedad sobre ubicaciones de stock y artículos"
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr "Icono por defecto de ubicación de almacén"
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr "Icono por defecto de ubicación de almacén (vacío significa que no hay icono)"
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr "Mostrar Articulos de Stock Instalados"
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr "Mostrar los artículos de stock instalados en las tablas de stock"
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr "Patrón de Referencia de Ordenes de Armado"
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr "Patrón requerido para generar el campo de referencia de la Orden de Ensamblado"
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
-msgstr ""
+msgstr "Prevenir la finalización de la orden de construcción hasta que todas las órdenes hijas estén cerradas"
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
-msgstr ""
+msgstr "Bloquear hasta que los Tests pasen"
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
-msgstr ""
+msgstr "Evitar que las construcciones sean completadas hasta que todas las pruebas requeridas pasen"
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr "Habilitar órdenes de devolución"
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr "Habilitar la funcionalidad de orden de devolución en la interfaz de usuario"
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr "Patrón de referencia de orden de devolución"
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
-msgstr ""
+msgstr "Patrón requerido para generar el campo de referencia de devolución de la orden"
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr "Editar ordenes de devolución completadas"
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr "Permitir la edición de ordenes de devolución después de que hayan sido completados"
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr "Patrón de Referencia de Ordenes de Venta"
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr "Patrón requerido para generar el campo de referencia de la orden de venta"
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr "Envío Predeterminado de Ordenes de Venta"
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr "Habilitar la creación de envío predeterminado con ordenes de entrega"
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr "Editar Ordenes de Venta Completados"
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Permitir la edición de ordenes de venta después de que hayan sido enviados o completados"
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
-msgstr ""
+msgstr "Marcar pedidos enviados como completados"
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
-msgstr ""
+msgstr "Los pedidos marcados como enviados se completarán automáticamente, evitando el estado de \"envío\""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr "Patrón de Referencia de Orden de Compra"
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Patrón requerido para generar el campo de referencia de la Orden de Compra"
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr "Editar Ordenes de Compra Completados"
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
-msgstr ""
+msgstr "Permitir la edición de órdenes de venta después de que hayan sido enviados o completados"
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr "Autocompletar Ordenes de compra"
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
-msgstr ""
+msgstr "Marcar automáticamente las órdenes de compra como completas cuando se reciben todos los artículos de línea"
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr "Habilitar función de contraseña olvidada"
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr "Activar la función olvido de contraseña en las páginas de inicio de sesión"
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr "Habilitar registro"
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr "Activar auto-registro para usuarios en las páginas de inicio de sesión"
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr "Habilitar SSO"
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr "Habilitar SSO en las páginas de inicio de sesión"
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr "Habilitar registro SSO"
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Activar autoregistro a través de SSO para usuarios en las páginas de inicio de sesión"
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
-msgstr ""
+msgstr "Habilitar sincronización de grupo SSO"
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
-msgstr ""
+msgstr "Habilitar la sincronización de grupos de Inventree con grupos proporcionados por el IdP"
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
-msgstr ""
+msgstr "Clave de grupo SSO"
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
-msgstr ""
+msgstr "El nombre del atributo reclamado por el grupo proporcionado por el IdP"
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
-msgstr ""
+msgstr "Mapa del grupo SSO"
-#: common/models.py:1999
+#: common/models.py:1985
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
-msgstr ""
+msgstr "Un mapeo de grupos SSO a grupos de Inventree locales. Si el grupo local no existe, se creará."
-#: common/models.py:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
-msgstr ""
+msgstr "Eliminar grupos fuera de SSO"
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "Email requerido"
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr "Requiere usuario para suministrar correo al registrarse"
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr "Auto-rellenar usuarios SSO"
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Rellenar automáticamente los datos de usuario de la cuenta SSO"
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr "Correo dos veces"
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr "Al registrarse pregunte dos veces a los usuarios por su correo"
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr "Contraseña dos veces"
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr "Al registrarse, preguntar dos veces a los usuarios por su contraseña"
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr "Dominios permitidos"
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
-msgstr ""
+msgstr "Restringir el registro a ciertos dominios (separados por comas, comenzando por @)"
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr "Grupo al registrarse"
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr "Forzar MFA"
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr "Los usuarios deben utilizar seguridad multifactor."
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr "Comprobar complementos al iniciar"
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Comprobar que todos los complementos están instalados en el arranque - habilitar en entornos de contenedores"
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
-msgstr ""
+msgstr "Revisar actualizaciones del plugin"
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
-msgstr ""
+msgstr "Habilitar comprobaciones periódicas para actualizaciones de plugins instalados"
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr "Habilitar integración de URL"
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr "Habilitar plugins para añadir rutas de URL"
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr "Habilitar integración de navegación"
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr "Habilitar plugins para integrar en la navegación"
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr "Habilitar integración de la aplicación"
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr "Habilitar plugins para añadir aplicaciones"
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr "Habilitar integración de programación"
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr "Habilitar plugins para ejecutar tareas programadas"
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr "Habilitar integración de eventos"
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr "Habilitar plugins para responder a eventos internos"
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr "Habilitar códigos de proyecto"
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr "Habilitar códigos de proyecto para rastrear proyectos"
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
-msgstr ""
+msgstr "Funcionalidad de inventario"
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
-msgstr ""
+msgstr "Habilite la funcionalidad de inventario para registrar los niveles de existencias y calcular el valor de las existencias"
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr "Excluir Ubicaciones Externas"
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
-msgstr ""
+msgstr "Excluir artículos en existencia en ubicaciones externas de los cálculos de inventario"
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
-msgstr ""
+msgstr "Periodo de inventario automático"
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
-msgstr ""
+msgstr "Número de días entre el registro automático del inventario (establecer en cero para desactivarlo)"
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr "Intervalo de borrado de informe"
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
-msgstr ""
+msgstr "Los informes de inventario se eliminarán después de un número de días especificado"
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr "Mostrar nombres completos de los usuarios"
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr "Mostrar nombres completos de usuarios en lugar de nombres de usuario"
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
+msgstr "Habilitar datos de estación de prueba"
+
+#: common/models.py:2152
+msgid "Enable test station data collection for test results"
+msgstr "Habilitar la recolección de datos de estaciones de prueba para resultados de prueba"
+
+#: common/models.py:2157
+msgid "Create Template on Upload"
msgstr ""
#: common/models.py:2159
-msgid "Enable test station data collection for test results"
+msgid "Create a new test template when uploading test data which does not match an existing template"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr "Tecla de ajustes (debe ser única - mayúsculas y minúsculas"
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr "Ocultar partes inactivas"
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr "Ocultar partes inactivas en los resultados mostrados en la página de inicio"
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr "Mostrar partes suscritas"
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr "Mostrar las partes suscritas en la página principal"
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr "Mostrar categorías suscritas"
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr "Mostrar categorías de partes suscritas en la página de inicio"
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr "Mostrar últimas partes"
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr "Mostrar las últimas partes en la página de inicio"
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
-msgstr ""
+msgstr "Mostrar BOM inválidos"
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr "Mostrar BOMs que esperan validación en la página de inicio"
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr "Mostrar cambios recientes de stock"
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr "Mostrar artículos de stock recientemente modificados en la página de inicio"
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr "Mostrar stock bajo"
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr "Mostrar artículos de stock bajo en la página de inicio"
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr "Mostrar stock agotado"
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr "Mostrar artículos agotados en la página de inicio"
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr "Mostrar stock necesario"
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr "Mostrar artículos de stock necesarios para trabajos en la página de inicio"
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr "Mostrar stock caducado"
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr "Mostrar artículos de stock caducados en la página de inicio"
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr "Mostrar stock obsoleto"
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr "Mostrar artículos de stock obsoletos en la página de inicio"
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr "Mostrar trabajos pendientes"
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr "Mostrar trabajos pendientes en la página de inicio"
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr "Mostrar trabajos vencidos"
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr "Mostrar trabajos pendientes en la página de inicio"
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr "Mostrar Órdenes de Compra Pendientes"
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr "Mostrar las OC destacadas en la página de inicio"
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr "Mostrar OC atrasadas"
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr "Mostrar las OC vencidas en la página de inicio"
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr "Mostrar OV pendiemtes"
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr "Mostrar OV pendientes en la página de inicio"
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr "Mostrar OV atrasadas"
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr "Mostrar OV atrasadas en la página de inicio"
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
-msgstr ""
+msgstr "Mostrar envíos pendientes de SO"
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
-msgstr ""
+msgstr "Mostrar envíos SO pendientes en la página de inicio"
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr "Mostrar novedades"
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr "Mostrar las últimas novedades de InvenTree en la página de inicio"
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr "Mostrar etiqueta interior"
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "Mostrar etiquetas PDF en el navegador, en lugar de descargar como un archivo"
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr "Impresora predeterminada"
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr "Mostrar informe en línea"
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "Mostrar informes PDF en el navegador, en lugar de descargar como un archivo"
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr "Buscar partes"
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr "Buscar partes de proveedor"
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr "Buscar Partes del Fabricante"
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr "Ocultar Partes Inactivas"
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr "Excluir las partes inactivas de la ventana de previsualización de búsqueda"
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr "Buscar categorías"
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr "Mostrar categorias de la parte en la ventana de previsualización de búsqueda"
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr "Buscar inventario"
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr "Mostrar artículos del stock en la ventana de previsualización de búsqueda"
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr "Ocultar Artículos del Stock Agotados"
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr "Excluir artículos de stock que no están disponibles en la ventana de previsualización de búsqueda"
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr "Buscar ubicaciones"
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr "Mostrar ubicaciones de almacén en la ventana de vista previa de búsqueda"
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr "Buscar empresas"
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr "Mostrar empresas en la ventana de vista previa de búsqueda"
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr "Buscar Pedidos de Construcción"
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr "Buscar órdenes de compra"
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr "Excluir pedidos de compra inactivos"
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr "Buscar órdenes de venta"
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr "Buscar órdenes de devolución"
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr "Resultados de la vista previa"
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr "Búsqueda usando una expresión regular"
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr "Habilitar expresiones regulares en las consultas de búsqueda"
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr "Búsqueda por palabra completa"
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr "Las consultas de búsqueda devuelven resultados para palabras enteras coincidentes"
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr "Mostrar cantidad en formularios"
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr "Mostrar la cantidad de partes disponibles en algunos formularios"
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr "Formularios de cierre de teclas de escape"
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr "Usa la clave de escape para cerrar formularios modales"
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr "Barra de navegación fija"
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr "La posición de la barra de navegación se fija en la parte superior de la pantalla"
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr "Formato de Fecha"
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr "Formato preferido para mostrar fechas"
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Planificación de partes"
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr "Recibir reportes de error"
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr "Últimas impresoras usadas"
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Usuario"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr "Cantidad de salto de precio"
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr "Cantidad de salto de precio"
msgid "Price"
msgstr "Precio"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr "Precio unitario a la cantidad especificada"
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr "Punto final en el que se recibe este webhook"
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr "Nombre para este webhook"
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr "Está activo este webhook"
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr "Token para el acceso"
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr "Clave"
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr "Secreto compartido para HMAC"
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr "ID de mensaje"
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr "Identificador único para este mensaje"
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr "Servidor desde el cual se recibió este mensaje"
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr "Encabezado"
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr "Encabezado del mensaje"
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr "Cuerpo"
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr "Cuerpo de este mensaje"
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr "Endpoint en el que se recibió este mensaje"
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr "Trabajado en"
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr "¿El trabajo en este mensaje ha terminado?"
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Título"
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr "Título"
msgid "Link"
msgstr "Enlace"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr "Publicado"
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Resumen"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr "Leer"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr "¿Esta noticia ya fue leída?"
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "Imágen"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr "Archivo de imagen"
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr "Nombre de unidad debe ser un identificador válido"
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr "Nombre de unidad"
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "Símbolo"
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr "Símbolo de unidad opcional"
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr "Definición"
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr "Definición de unidad"
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Archivo adjunto"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Archivo no encontrado"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Falta enlace externo"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Seleccionar archivo para adjuntar"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Comentario"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr "Clave"
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
-msgstr ""
+msgstr "Etiqueta"
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr "Los artículos han sido recibidos contra una orden de devolución"
msgid "Error raised by plugin"
msgstr "Error generado por el complemento"
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr "Está en ejecución"
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr "Tareas pendientes"
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr "Tareas Programadas"
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr "Tareas fallidas"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr "Identificación de Tarea"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr "Identificación de tarea única"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr "Bloquear"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr "Bloquear hora"
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr "Nombre de la tarea"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr "Función"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr "Nombre de la Función"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr "Argumentos"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr "Argumentos de la tarea"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr "Argumentos de palabra clave"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr "Argumentos de palabra clave de tarea"
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Nombre de Archivo"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr "Enlace a información de dirección (externa)"
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr "Parte del fabricante"
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Parte base"
@@ -4463,8 +4460,8 @@ msgstr "Seleccionar parte"
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr "Seleccionar fabricante"
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr "Nombre del parámetro"
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr "Valor del parámetro"
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr "Unidades de parámetro"
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr "La parte vinculada del fabricante debe hacer referencia a la misma parte
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr "Proveedor"
msgid "Select supplier"
msgstr "Seleccionar proveedor"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr "Unidad de mantenimiento de stock de proveedores"
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr "Descripción de la parte del proveedor"
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr "Descripción de la parte del proveedor"
msgid "Note"
msgstr "Nota"
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr "costo base"
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)"
@@ -4629,7 +4626,7 @@ msgstr "Cantidad de paquete"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "Cantidad total suministrada en un solo paquete. Dejar vacío para artículos individuales."
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr "múltiple"
@@ -4661,7 +4658,7 @@ msgstr "Moneda predeterminada utilizada para este proveedor"
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr "Borrar imagen"
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,7 @@ msgstr "No hay información del fabricante 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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr "No hay información de proveedor disponible"
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr "Datos"
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr "Número de artículos recibidos"
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr "Precio de Compra"
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr "Usuario que revisó este envío"
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr "Envío"
@@ -5982,7 +5979,7 @@ msgstr "Partida"
msgid "Line item does not match purchase order"
msgstr "La partida no coincide con la orden de compra"
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr "Seleccione la ubicación de destino para los artículos recibidos"
@@ -6019,7 +6016,7 @@ msgstr "Código de barras en uso"
msgid "An integer quantity must be provided for trackable parts"
msgstr "Debe proporcionarse una cantidad entera para las partes rastreables"
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr "Se deben proporcionar las partidas"
@@ -6051,39 +6048,39 @@ msgstr "La cantidad debe ser positiva"
msgid "Enter serial numbers to allocate"
msgstr "Introduzca números de serie para asignar"
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr "El envío ya ha sido enviado"
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr "El envío no está asociado con este pedido"
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr "No se han encontrado coincidencias para los siguientes números de serie"
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
-msgstr "Los siguientes números de serie ya están asignados"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
+msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr "Partida de orden de devolución"
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr "La partida no coincide con la orden de devolución"
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr "La partida ya ha sido recibida"
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr "Los artículos sólo pueden ser recibidos contra pedidos en curso"
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr "Moneda de precio de línea"
@@ -6510,7 +6507,7 @@ msgstr "Actualizado el precio unitario de {part} a {price}"
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "Actualizado el precio unitario de {part} a {price} y la cantidad a {qty}"
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr "Imagen de parte"
msgid "Category ID"
msgstr "ID de Categoría"
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr "Nombre de categoría"
@@ -6562,18 +6559,18 @@ msgstr "Stock mínimo"
msgid "Used In"
msgstr "Usado en"
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr "En construcción"
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr "Costo mínimo"
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr "Costo máximo"
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr "Ruta de Categoría"
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr "IPN del padre"
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Precio mínimo"
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr "Ubicación Predeterminada"
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Inventario Total"
@@ -6755,7 +6752,7 @@ msgstr "Inventario Total"
msgid "Input quantity for price calculation"
msgstr "Cantidad de entrada para el cálculo del precio"
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoría de parte"
@@ -6878,7 +6875,7 @@ msgstr "Parte con este nombre, IPN y revisión ya existe."
msgid "Parts cannot be assigned to structural part categories!"
msgstr "¡No se pueden asignar partes a las categorías de partes estructurales!"
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr "Nombre de la parte"
@@ -6906,7 +6903,7 @@ msgstr "Palabras clave para mejorar la visibilidad en los resultados de búsqued
msgid "Part category"
msgstr "Categoría de parte"
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr "Revisión de parte o número de versión"
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr "Último inventario"
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr "Vender múltiples"
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr "Moneda utilizada para almacenar en caché los cálculos de precios"
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr "Costo mínimo de BOM"
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr "Costo mínimo de partes de componentes"
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr "Costo máximo de BOM"
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr "Costo máximo de partes de componentes"
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr "Costo mínimo de compra"
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr "Costo histórico mínimo de compra"
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr "Costo máximo de compra"
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr "Costo histórico máximo de compra"
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr "Precio interno mínimo"
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr "Costo mínimo basado en precios reducidos internos"
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr "Precio interno máximo"
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr "Costo máximo basado en precios reducidos internos"
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr "Precio mínimo de proveedor"
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr "Precio mínimo de la parte de proveedores externos"
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr "Precio máximo de proveedor"
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr "Precio máximo de la parte de proveedores externos"
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr "Costo mínimo de variante"
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr "Costo mínimo calculado de las partes variantes"
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr "Costo máximo de variante"
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr "Costo máximo calculado de las partes variantes"
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr "Anular el costo mínimo"
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr "Costo mínimo general calculado"
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr "Precio de venta mínimo"
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr "Precio de venta mínimo basado en precios reducidos"
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr "Precio de venta máximo"
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr "Precio de venta máximo basado en precios reducidos"
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr "Costo de venta mínimo"
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr "Precio de venta mínimo histórico"
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr "Costo de Venta Máximo"
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr "Número de artículos"
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr "Fecha"
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr "Notas adicionales"
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr "Costo de Stock Mínimo"
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr "Costo mínimo estimado del stock disponible"
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr "Informe"
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr "Número de partes"
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
-msgstr ""
+msgstr "Las plantillas de prueba solo pueden ser creadas para partes de prueba"
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr "Nombre de prueba"
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr "Introduzca un nombre para la prueba"
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr "Descripción de prueba"
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr "Introduce la descripción para esta prueba"
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr "Habilitado"
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr "Requerido"
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr "¿Es necesario pasar esta prueba?"
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr "Requiere valor"
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr "¿Esta prueba requiere un valor al agregar un resultado de la prueba?"
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr "Adjunto obligatorio"
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr "¿Esta prueba requiere un archivo adjunto al agregar un resultado de la prueba?"
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr "Opciones"
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr "El nombre de parámetro en la plantilla tiene que ser único"
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr "Nombre de Parámetro"
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr "Casilla de verificación"
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr "¿Es este parámetro una casilla de verificación?"
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr "Opciones válidas para este parámetro (separados por comas)"
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr "Opción inválida para el valor del parámetro"
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr "Parte principal"
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Plantilla de parámetro"
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr "Valor del parámetro"
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Valor predeterminado"
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr "Valor de parámetro por defecto"
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr "ID de parte o nombre de parte"
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr "Valor de ID de parte única"
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr "Valor IPN de parte"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr "Nivel"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr "Nivel de BOM"
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr "Seleccionar parte principal"
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr "Sub parte"
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr "Seleccionar parte a utilizar en BOM"
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr "Cantidad del artículo en BOM"
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr "Este artículo BOM es opcional"
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Este artículo de BOM es consumible (no está rastreado en órdenes de construcción)"
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Exceso"
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Cantidad estimada de desperdicio de construcción (absoluta o porcentaje)"
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr "Referencia de artículo de BOM"
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr "Notas del artículo de BOM"
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr "Suma de verificación"
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr "Suma de verificación de línea de BOM"
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr "Validado"
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr "Este artículo de BOM ha sido validado"
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Este artículo BOM es heredado por BOMs para partes variantes"
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Artículos de stock para partes variantes pueden ser usados para este artículo BOM"
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr "La cantidad debe ser un valor entero para las partes rastreables"
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr "Debe especificar la subparte"
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr "Ítem de BOM sustituto"
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr "La parte sustituta no puede ser la misma que la parte principal"
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr "Artículo BOM superior"
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr "Sustituir parte"
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr "Parte 1"
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr "Parte 2"
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr "Seleccionar parte relacionada"
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr "Moneda de compra de ítem de stock"
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr "Parte original"
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr "Seleccione la parte original a duplicar"
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr "Copiar Imagen"
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr "Copiar imagen desde la parte original"
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr "Copiar BOM"
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr "Copiar la factura de materiales de la parte original"
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr "Copiar Parámetros"
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr "Copiar datos del parámetro de la parte original"
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr "Copiar Notas"
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr "Cantidad Inicial de Stock"
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr "Seleccione proveedor (o déjelo en blanco para saltar)"
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Seleccionar fabricante (o dejar en blanco para saltar)"
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr "Número de parte del fabricante"
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr "La empresa seleccionada no es un proveedor válido"
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr "La empresa seleccionada no es un fabricante válido"
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr "Duplicar Parte"
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr "Stock Inicial"
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr "Crear Parte con cantidad inicial de stock"
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr "Información del proveedor"
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr "Añadir información inicial del proveedor para esta parte"
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr "Copiar Parámetros de Categoría"
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr "Copiar plantillas de parámetro de la categoría de partes seleccionada"
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr "Imagen Existente"
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr "El archivo de imagen no existe"
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr "Generar informe"
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr "Actualizar partes"
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr "Anular el valor calculado para precio mínimo"
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr "Precio mínimo de moneda"
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr "Precio máximo de moneda"
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr "Actualizar"
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr "El precio mínimo no debe ser mayor que el precio máximo"
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr "El precio máximo no debe ser inferior al precio mínimo"
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr "Puede construir"
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr "Seleccionar parte de la que copiar BOM"
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr "Eliminar Datos Existentes"
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr "Eliminar artículos BOM existentes antes de copiar"
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr "Incluye Heredado"
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr "Incluye artículos BOM que son heredados de partes con plantillas"
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr "Omitir filas no válidas"
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr "Activar esta opción para omitir filas inválidas"
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr "Copiar partes sustitutas"
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr "Limpiar BOM Existente"
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr "Varios resultados encontrados"
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr "No se encontraron partes coincidentes"
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr "La parte no está designada como componente"
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr "Cantidad no proporcionada"
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr "Cantidad no válida"
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr "Se requiere al menos un artículo BOM"
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr "Suscríbete a las notificaciones de este artículo"
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr "Imprimir etiqueta"
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr "Mostrar información de precios"
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr "Acciones de stock"
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr "Último número de serie"
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr "Buscar número de serie"
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr "Editar"
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr "Imagen de parte no encontrada"
msgid "Part Pricing"
msgstr "Precio de parte"
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr "Complemento integrado"
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr "URL de origen"
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr "No se han proporcionado objetos válidos a la plantilla"
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr "Patrón de Nombre de archivo"
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr "Filtros"
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr "Tamaño de página para reportes PDF"
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr "Ancho [mm]"
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr "Ancho de la etiqueta, especificado en mm"
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr "Altura [mm]"
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr "Altura de la etiqueta, especificada en mm"
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr "Progreso"
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr "Fragmento"
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr "Archivo fragmento de informe"
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr "Descripción de archivo de fragmento"
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr "Activo"
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr "Reportar archivo de activos"
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr "Descripción del archivo de activos"
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr "Resultados de la Prueba"
msgid "Test"
msgstr "Prueba"
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr "Resultado"
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr "ID de cliente"
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr "Instalado en"
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr "Fecha de Expiración"
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr "Desactualizado"
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr "Ubicaciones de Stock"
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr "Propietario"
@@ -9826,7 +9891,7 @@ msgstr "Build de origen"
msgid "Build for this stock item"
msgstr "Build para este item de stock"
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr "Consumido por"
@@ -9891,7 +9956,7 @@ msgstr "La cantidad no coincide con los números de serie"
msgid "Serial numbers already exist"
msgstr "Números de serie ya existen"
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr "Los códigos de estado del stock deben coincidir"
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stock no se puede mover porque no está en stock"
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr "Notas de entrada"
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr "Debe proporcionarse un valor para esta prueba"
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr "El archivo adjunto debe ser subido para esta prueba"
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr "Resultado de la prueba"
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr "Valor de salida de prueba"
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr "Adjunto de resultados de prueba"
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr "Notas de prueba"
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr "El número de serie es demasiado grande"
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr "Elemento padre"
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr "Expirado"
@@ -10410,7 +10475,7 @@ msgstr "Este artículo de stock no tiene ningún artículo secundario"
msgid "Test Data"
msgstr "Datos de Prueba"
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr "Informe de Prueba"
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr "Escanear a la ubicación"
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr "Acciones de impresión"
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr "Acciones de ajuste de stock"
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr "Contar stock"
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr "Añadir stock"
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr "Eliminar stock"
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr "Serializar stock"
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr "Transferir stock"
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr "Asignar a cliente"
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr "Regresar al stock"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr "Desinstalar artículo de stock"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr "Desinstalar"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr "Instalar artículo de stock"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr "Instalar"
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr "Convertir a variante"
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr "Duplicar artículo"
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr "Editar artículo de almacén"
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr "Eliminar artículo de stock"
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Construcción o Armado"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr "Ningún fabricante establecido"
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr "No estás en la lista de propietarios de este artículo. Este artículo de stock no puede ser editado."
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr "Solo lectura"
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr "Este artículo de stock está en producción y no puede ser editado."
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr "Editar el artículo de stock desde la vista de construcción."
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr "Este artículo de stock está asignado a la orden de venta"
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr "Este artículo de stock está asignado al orden de construcción"
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr "página anterior"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr "Navegar al número de serie anterior"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr "página siguiente"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr "Navegar al siguiente número de serie"
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr "Ubicación no establecida"
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr "Pruebas"
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr "Este artículo de stock no ha pasado todas las pruebas requeridas"
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr "Este ítem expiró el %(item.expiry_date)s"
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Este ítem expira el %(item.expiry_date)s"
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr "Ningún inventario realizado"
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr "Seleccione una de las variantes de parte listadas a continuación."
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr "Advertencia"
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr "Esta acción no se puede deshacer fácilmente"
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr "Configuración de orden de venta"
msgid "Stock Settings"
msgstr "Configuración de Stock"
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr "Añadir archivo adjunto"
msgid "Barcode Identifier"
msgstr "Identificador de Código de Barras"
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr "Reinicio del Servidor Requerido"
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr "Se ha cambiado una opción de configuración que requiere reiniciar el servidor"
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr "Póngase en contacto con su administrador para más información"
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
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 23737281e8f5..364edecf78f8 100644
--- a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Spanish, Mexico\n"
"Language: es_MX\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Chino (Tradicional)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] Iniciar sesión en la aplicación"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Los nombres duplicados no pueden existir bajo el mismo padre"
msgid "Invalid choice"
msgstr "Selección no válida"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Nombre"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Error de servidor"
msgid "An error has been logged by the server."
msgstr "Se ha registrado un error por el servidor."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Debe ser un número válido"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Seleccionar moneda de las opciones disponibles"
msgid "Username"
msgstr "Nombre de usuario"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "Nombre"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr "Nombre de usuario"
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "Apellido"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr "Apellido del usuario"
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr "Dirección de email del usuario"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr "Personal"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr "Tiene permisos de personal este usuario"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr "Superusuario"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr "Este usuario es un superusuario"
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr "Este usuario es un superusuario"
msgid "Active"
msgstr "Activo"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr "Esta cuenta de usuario está activa"
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "No tiene permiso para cambiar este cargo de usuario."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Solo los superusuarios pueden crear nuevos usuarios"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "Su cuenta ha sido creada."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "Por favor, utilice la función de restablecer la contraseña para iniciar sesión"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "Bienvenido a InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Valor inválido"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Archivo de datos"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Seleccione el archivo para subir"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Tipo de archivo no soportado"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "El archivo es demasiado grande"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "No hay columnas en el archivo"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "No hay filas de datos en el archivo"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "No se proporcionaron filas de datos"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "No hay columnas de datos para suministrar"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Falta la columna requerida: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Columna duplicada: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Imagen remota"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "URL de imagen remota"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "La descarga de imágenes desde la URL remota no está habilitada"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr ""
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr ""
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr ""
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr ""
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr ""
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr ""
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr ""
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr ""
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr ""
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr ""
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po
index 15727cd672e5..5d84f7e4cb45 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Estonian\n"
"Language: et_EE\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr ""
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr ""
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "Eesnimi"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "Perekonnanimi"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr ""
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr "Osa ID"
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr "Seerianumber"
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "Katkestatud"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Valmis"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr ""
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr ""
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr ""
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr ""
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr ""
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr ""
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr ""
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po
index 1469ea30bc2e..ded2d793c482 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Language: fa_IR\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr ""
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr ""
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "فایلهای داده"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "فایل را برای بارگذاری انتخاب کنید"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "این نوع فایل پشتیبانی نمیشود"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "حجم فایل خیلی بزرگ است"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "هیچ ستونی در فایل یافت نشد"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "هیچ ردیف داده ای در فایل یافت نشد"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "هیچ ردیف داده ای ارائه نشده است"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "هیچ ستون داده ای ارائه نشده است"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "ستون مورد نیاز وجود ندارد: \"{name}\""
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "ستون تکراری: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "آدرس فایل تصویری از راه دور"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr ""
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr ""
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr ""
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr ""
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr ""
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr ""
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr ""
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr ""
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr ""
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr ""
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po
index 24742b725a78..88530909f7a0 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Language: fi_FI\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr ""
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr "Virheellinen valinta"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Nimi"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Palvelinvirhe"
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Täytyy olla kelvollinen luku"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Valitse valuutta käytettävissä olevista vaihtoehdoista"
msgid "Username"
msgstr "Käyttäjätunnus"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "Etunimi"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "Sukunimi"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr "Aktiivinen"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Virheellinen arvo"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Datatiedosto"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Valitse lähetettävä datatiedosto"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Tiedostotyyppiä ei tueta"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Tiedosto on liian suuri"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Datarivejä ei annettu"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Datasarakkeita ei annettu"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Vaadittu sarake puuttuu: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Duplikaatti sarake: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "Kuvatiedoston URL"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "Kuvien lataaminen ei ole käytössä"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr "Saatavilla"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Saatavilla"
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Ulkoinen linkki"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Linkki ulkoiseen URLiin"
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr "Määrä"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr "Varastotuote"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr "Sarjanumero"
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr "Seurattavissa"
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "Peruttu"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Valmis"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "päivää"
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr "Komponentti"
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "Sivun koko"
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr "Täytä sarjanumerot automaattisesti"
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr "Salli salasananpalautus"
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr "Salli rekisteröinti"
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr "Salli SSO"
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr "Salli SSO kirjautumissivuilla"
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr "Salli SSO rekisteröinti"
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "Sähköposti vaaditaan"
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr "Sähköpostiosoite kahdesti"
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr "Salasana kahdesti"
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr "Sallitut verkkotunnukset"
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr "Pakota MFA"
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr "Näytä uutiset"
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr "Näytä uutiset kotisivulla"
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Käyttäjä"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr "Hinta"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr "Salaisuus"
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr "Isäntä"
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Otsikko"
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr "Otsikko"
msgid "Link"
msgstr "Linkki"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr "Julkaistu"
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Yhteenveto"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "Kuva"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr "Kuvatiedosto"
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Liite"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Puuttuva tiedosto"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Puuttuva ulkoinen linkki"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Valitse liitettävä tiedosto"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Kommentti"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr "Avain"
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Tiedostonimi"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr "Valitse valmistaja"
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr "Toimittaja"
msgid "Select supplier"
msgstr "Valitse toimittaja"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr "Toimittajan varastonimike"
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr "Muistiinpano"
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr "Päivämäärä"
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr "Muut merkinnät"
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr "Raportti"
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr "Käytössä"
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr "Valmistajan osanumero"
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr "Luo raportti"
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr "Muokkaa"
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr "Suodattimet"
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr "Leveys [mm]"
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr "Korkeus [mm]"
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr "edellinen sivu"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr "Siirry edeltävään sarjanumeroon"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr "seuraava sivu"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr "Siirry seuraavaan sarjanumeroon"
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr "Varoitus"
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr "Lisää liite"
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr "Palvelimen uudelleenkäynnistys vaaditaan"
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po
index 1ce8ba2e71c8..f4cc3d81e8f1 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Chinois (Traditionnel)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] Se connecter à l'application"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Les noms dupliqués ne peuvent pas exister sous le même parent"
msgid "Invalid choice"
msgstr "Choix invalide"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Nom"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Erreur serveur"
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:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Doit être un nombre valide"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Sélectionnez la devise à partir des options disponibles"
msgid "Username"
msgstr "Nom d'utilisateur"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "Prénom"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr "Prénom de l'utilisateur"
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "Nom"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr "Nom de famille de l'utilisateur"
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr "Adresse e-mail de l'utilisateur"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr "Staff"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr "Cet utilisateur a-t-il les permissions du staff"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr "Super-utilisateur"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr "Cet utilisateur est-il un super-utilisateur"
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr "Cet utilisateur est-il un super-utilisateur"
msgid "Active"
msgstr "Actif"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr "Ce compte d'utilisateur est-il actif"
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "Vous n'avez pas la permission de modifier ce rôle utilisateur."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Seuls les super-utilisateurs peuvent créer de nouveaux utilisateurs"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "Votre compte a été créé."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "Veuillez utiliser la fonction de réinitialisation du mot de passe pour vous connecter"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "Bienvenue dans InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Valeur non valide"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Fichier de données"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Sélectionnez le fichier de données à envoyer"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Format de fichier non supporté"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Fichier trop volumineux"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Pas de colonnes trouvées dans le fichier"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Par de lignes de données trouvées dans le fichier"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Pas de lignes de données fournies"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Pas de colonne de données fournie"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Colonne requise manquante : {name}"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Colonne duliquée : '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Images distantes"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "URL du fichier image distant"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
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:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Échec de la vérification du processus d'arrière-plan"
@@ -759,7 +759,7 @@ msgstr ""
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:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "La construction doit être annulée avant de pouvoir être supprimée"
msgid "Consumable"
msgstr "Consommable"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "Facultatif"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr "Allouée"
msgid "Available"
msgstr "Disponible"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Disponible"
msgid "Build Order"
msgstr "Ordre de Fabrication"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr "Référence de l' Ordre de Fabrication"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "BuildOrder associé a cette fabrication"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr "Utilisateur ou groupe responsable de cet ordre de construction"
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Lien Externe"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Lien vers une url externe"
@@ -1110,7 +1110,7 @@ msgstr "La commande de construction {build} a été effectuée"
msgid "A build order has been completed"
msgstr "Une commande de construction a été effectuée"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "Pas d'ordre de production défini"
@@ -1122,37 +1122,37 @@ msgstr "L'ordre de production a déjà été réalisé"
msgid "Build output does not match Build Order"
msgstr "L'ordre de production de correspond pas à l'ordre de commande"
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "La quantité doit être supérieure à zéro"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
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:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, 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:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr "Création de l'objet"
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr "Création de l'objet"
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr "Création de l'objet"
msgid "Quantity"
msgstr "Quantité"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr "Quantité requise pour la commande de construction"
-#: build/models.py:1586
+#: build/models.py:1597
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:1595
+#: build/models.py:1606
#, 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:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "L'article de stock est suralloué"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "La quantité allouée doit être supérieure à zéro"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "La quantité doit être de 1 pour stock sérialisé"
-#: build/models.py:1676
+#: build/models.py:1687
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:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr "L'article de stock sélectionné ne correspond pas à la ligne BOM"
msgid "Stock Item"
msgstr "Article en stock"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Stock d'origine de l'article"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Quantité de stock à allouer à la construction"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Installer dans"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Stock de destination de l'article"
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr "Nom de l'article"
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "Entrer les numéros de séries pour la fabrication"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr "Emplacement des ordres de production achevés"
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr "La sortie de construction doit être spécifiée pour l'allocation des p
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "La sortie de la construction ne peut pas être spécifiée pour l'allocation des pièces non suivies"
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr "Les articles d'allocation doivent être fournis"
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr "Conditionnement"
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr "ID de composant"
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr "Numéro de série"
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr "Traçable"
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr "Article du BOM"
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr "Stock alloué"
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr "Stock alloué"
msgid "On Order"
msgstr "En Commande"
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr "En Production"
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "Annulé"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Terminé"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr "Supprimer l'assemblage"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr "Sorties de Construction terminées"
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr "Pièces allouées"
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr "Sorties incomplètes"
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr "L'utilisateur n'a pas les permissions de supprimer cette pièce jointe"
@@ -2352,8 +2349,8 @@ msgstr "Fréquence de mise à jour des taux de change (définir à zéro pour d
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "jours"
@@ -2581,9 +2578,9 @@ msgstr "Copier les templates de paramètres de catégorie"
msgid "Copy category parameter templates when creating a part"
msgstr "Copier les templates de paramètres de la catégorie lors de la création d'une pièce"
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,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:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr "Composant"
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "Taille de la page"
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr "Taille de page par défaut pour les rapports PDF"
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr "Activer les rapports de test"
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr "Activer la génération de rapports de test"
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr "Joindre des rapports de test"
-
-#: common/models.py:1716
-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:1722
msgid "Globally Unique Serials"
msgstr "Numéro de Série Universellement Unique"
-#: common/models.py:1723
+#: common/models.py:1709
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:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr "Remplir automatiquement les Numéros de Série"
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr "Remplir automatiquement les numéros de série dans les formulaires"
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr "Supprimer le stock épuisé"
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr "Modèle de code de lot"
-#: common/models.py:1744
+#: common/models.py:1730
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:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr "Expiration du stock"
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr "Activer la fonctionnalité d'expiration du stock"
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr "Vendre le stock expiré"
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr "Autoriser la vente de stock expiré"
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr "Délai de péremption du stock"
-#: common/models.py:1763
+#: common/models.py:1749
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:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr "Construction de stock expirée"
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr "Autoriser la construction avec un stock expiré"
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr "Contrôle de la propriété des stocks"
-#: common/models.py:1777
+#: common/models.py:1763
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:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr "Icône par défaut de l'emplacement du stock"
-#: common/models.py:1783
+#: common/models.py:1769
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:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr "Afficher les pièces en stock installées"
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr "Modèle de référence de commande de construction"
-#: common/models.py:1812
+#: common/models.py:1798
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:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr "Activer les retours de commandes"
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr "Activer la fonctionnalité de retour de commande dans l'interface utilisateur"
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr "Modèle de référence de retour de commande"
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr "Modifier les retours de commandes terminées"
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr "Autoriser la modification des retours après leur enregistrement"
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr "Modèle de référence de bon de commande"
-#: common/models.py:1890
+#: common/models.py:1876
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:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr "Expédition par défaut du bon de commande"
-#: common/models.py:1903
+#: common/models.py:1889
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:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr "Modifier les commandes de vente terminées"
-#: common/models.py:1910
+#: common/models.py:1896
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:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr "Modèle de référence de commande d'achat"
-#: common/models.py:1926
+#: common/models.py:1912
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:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr "Modifier les bons de commande terminés"
-#: common/models.py:1940
+#: common/models.py:1926
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:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr "Activer les mots de passe oubliés"
-#: common/models.py:1956
+#: common/models.py:1942
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:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr "Activer les inscriptions"
-#: common/models.py:1962
+#: common/models.py:1948
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:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr "Activer le SSO"
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr "Activer le SSO sur les pages de connexion"
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr "Activer l'inscription SSO"
-#: common/models.py:1975
+#: common/models.py:1961
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:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "Email requis"
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr "Exiger que l'utilisateur fournisse un mail lors de l'inscription"
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr "Saisie automatique des utilisateurs SSO"
-#: common/models.py:2021
+#: common/models.py:2007
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:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr "Courriel en double"
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mail"
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr "Mot de passe deux fois"
-#: common/models.py:2034
+#: common/models.py:2020
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:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr "Domaines autorisés"
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr "Grouper sur inscription"
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr "Forcer l'authentification multifacteurs"
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr "Les utilisateurs doivent utiliser l'authentification multifacteurs."
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr "Vérifier les plugins au démarrage"
-#: common/models.py:2063
+#: common/models.py:2049
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:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr "Activer l'intégration d'URL"
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr "Autoriser les plugins à ajouter des chemins URL"
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr "Activer l'intégration de navigation"
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr "Activer les plugins à s'intégrer dans la navigation"
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr "Activer l'intégration de plugins"
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr "Activer l'intégration de plugin pour ajouter des apps"
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr "Activer l'intégration du planning"
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr "Autoriser les plugins à éxécuter des tâches planifiées"
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr "Activer l'intégration des évènements"
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr "Autoriser les plugins à répondre aux évènements internes"
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr "Activer les codes projet"
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr "Fonctionnalité d'inventaire"
-#: common/models.py:2121
+#: common/models.py:2114
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:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr "Période de l'inventaire automatique"
-#: common/models.py:2137
+#: common/models.py:2130
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:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
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:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr "Clé du paramètre (doit être unique - insensible à la casse)"
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr "Afficher les composants suivis"
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr "Afficher les composants suivis sur l'écran d'accueil"
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr "Afficher les catégories suivies"
-#: common/models.py:2229
+#: common/models.py:2230
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:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr "Afficher les dernières pièces"
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr "Afficher les derniers composants sur la page d'accueil"
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
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:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr "Afficher les dernières modifications du stock"
-#: common/models.py:2247
+#: common/models.py:2248
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:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr "Afficher le stock faible"
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr "Afficher les articles en stock bas sur la page d'accueil"
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr "Afficher le stock épuisé"
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr "Afficher les stocks épuisés sur la page d'accueil"
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr "Afficher le stock nécessaire"
-#: common/models.py:2265
+#: common/models.py:2266
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:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr "Afficher le stock expiré"
-#: common/models.py:2271
+#: common/models.py:2272
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:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr "Afficher le stock périmé"
-#: common/models.py:2277
+#: common/models.py:2278
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:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr "Afficher les constructions en attente"
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr "Afficher les constructions en attente sur la page d'accueil"
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr "Afficher les constructions en retard"
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr "Afficher les constructions en retard sur la page d'accueil"
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr "Afficher les commandes en suspens"
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr "Afficher les commandes en suspens sur la page d'accueil"
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr "Afficher les commandes en retard"
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr "Afficher les commandes en retard sur la page d'accueil"
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr "Afficher les envois en suspens"
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr "Afficher les envois en suspens sur la page d'accueil"
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr "Afficher les envois en retard"
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr "Afficher les envois en retard sur la page d'accueil"
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr "Afficher les nouvelles"
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr "Afficher les nouvelles sur la page d'accueil"
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr "Affichage du libellé en ligne"
-#: common/models.py:2332
+#: common/models.py:2333
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:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr "Imprimante d'étiquettes par défaut"
-#: common/models.py:2340
+#: common/models.py:2341
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:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr "Affichage du rapport en ligne"
-#: common/models.py:2348
+#: common/models.py:2349
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:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr "Rechercher de pièces"
-#: common/models.py:2355
+#: common/models.py:2356
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:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr "Recherche du fournisseur de pièces"
-#: common/models.py:2361
+#: common/models.py:2362
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:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr "Rechercher les pièces du fabricant"
-#: common/models.py:2367
+#: common/models.py:2368
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:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr "Masquer les pièces inactives"
-#: common/models.py:2373
+#: common/models.py:2374
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:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr "Rechercher des catégories"
-#: common/models.py:2379
+#: common/models.py:2380
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:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr "Rechercher dans le stock"
-#: common/models.py:2385
+#: common/models.py:2386
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:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr "Cacher les pièces indisponibles"
-#: common/models.py:2392
+#: common/models.py:2393
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:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr "Chercher des Emplacements"
-#: common/models.py:2399
+#: common/models.py:2400
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:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr "Rechercher les entreprises"
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr "Afficher les entreprises dans la fenêtre de prévisualisation de recherche"
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr "Rechercher les commandes de construction"
-#: common/models.py:2411
+#: common/models.py:2412
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:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr "Rechercher des bons de commande"
-#: common/models.py:2417
+#: common/models.py:2418
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:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr "Exclure les bons de commande inactifs"
-#: common/models.py:2424
+#: common/models.py:2425
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:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr "Rechercher les bons de commande"
-#: common/models.py:2431
+#: common/models.py:2432
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:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr "Exclure les bons de commande inactives"
-#: common/models.py:2438
+#: common/models.py:2439
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:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr "Rechercher les commandes retournées"
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr "Résultats de l'aperçu de la recherche"
-#: common/models.py:2460
+#: common/models.py:2461
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:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr "Recherche Regex"
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr "Afficher la quantité dans les formulaires"
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr "Afficher la quantité disponible dans certains formulaires"
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr "La touche Echap ferme les formulaires"
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr "Utilisez la touche Echap pour fermer les formulaires modaux"
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr "Barre de navigation fixe"
-#: common/models.py:2491
+#: common/models.py:2492
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:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr "Format de date"
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr "Format préféré pour l'affichage des dates"
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Planification des pièces"
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr "Afficher les informations de planification des pièces"
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Inventaire des pièces"
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr "Longueur de la chaîne dans les Tableau"
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr "Longueur maximale des chaînes affichées dans les tableaux"
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Utilisateur"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr "Prix"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr "Ce webhook (lien de rappel HTTP) est-il actif"
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr "Jeton"
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr "Jeton d'accès"
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr "Confidentiel"
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr "ID message"
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr "Identifiant unique pour ce message"
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr "Hôte"
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr "Hôte à partir duquel ce message a été reçu"
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr "Entête"
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr "En-tête de ce message"
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr "Corps"
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr "Corps de ce message"
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr "Endpoint à partir duquel ce message a été reçu"
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr "Le travail sur ce message est-il terminé ?"
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr "Id"
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Titre"
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr "Titre"
msgid "Link"
msgstr "Lien"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr "Publié"
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Résumé"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr "Lu"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr "Cette nouvelle a-t-elle été lue ?"
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "Image"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr "Fichier image"
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "Symbole"
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr "Symbole d'unité facultatif"
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr "Définition"
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr "Définition de l'unité"
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Pièce jointe"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Fichier manquant"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Lien externe manquant"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Sélectionnez un fichier à joindre"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Commentaire"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr "Erreur déclenchée par le plugin"
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr "En cours d'exécution"
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr "Tâches en attente"
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr "Tâches planifiées"
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr "Tâches échouées"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr "ID de la tâche"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr "ID unique de la tâche"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr "Verrouillé"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr "Heure verrouillé"
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr "Nom de la tâche"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr "Fonction"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr "Nom de la fonction"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr "Arguments"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr "Arguments tâche"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr "Mots-clés Arguments"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr "Mots-clés arguments tâche"
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Nom du fichier"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr "Lien vers les informations de l'adresse (externe)"
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr "Pièces du fabricant"
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr "Sélectionner un fabricant"
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr "Nom du paramètre"
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr "Valeur du paramètre"
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr "Unités du paramètre"
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr "La pièce du fabricant liée doit faire référence à la même pièce d
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr "Fournisseur"
msgid "Select supplier"
msgstr "Sélectionner un fournisseur"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr "Unité de gestion des stocks des fournisseurs"
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr "Description de la pièce du fournisseur"
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr "Description de la pièce du fournisseur"
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr "coût de base"
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Frais minimums (par exemple frais de stock)"
@@ -4629,7 +4626,7 @@ msgstr "Nombre de paquet"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr "plusieurs"
@@ -4661,7 +4658,7 @@ msgstr "Devise par défaut utilisée pour ce fournisseur"
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr "Supprimer image"
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr "Aucune information de fournisseur disponible"
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr "Données"
@@ -5473,7 +5470,7 @@ msgstr "Commande En Attente"
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr "Nombre d'éléments reçus"
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr "Prix d'achat"
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr "Utilisateur qui a vérifié cet envoi"
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr "Envoi"
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr "Le code-barres est déjà utilisé"
msgid "An integer quantity must be provided for trackable parts"
msgstr "Une quantité entière doit être fournie pour les pièces tracables"
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr "Entrez les numéros de série à allouer"
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr "Aucune correspondance trouvée pour les numéros de série suivants"
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
-msgstr "Les numéros de série suivants sont déjà alloués"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
+msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr "Image pièce"
msgid "Category ID"
msgstr "ID catégorie"
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr "Nom catégorie"
@@ -6562,18 +6559,18 @@ msgstr "Stock Minimum"
msgid "Used In"
msgstr "Utilisé pour"
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr "Construction"
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr "Coût minimal"
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr "Coût maximal"
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr "Chemin catégorie"
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Prix Minimum"
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr "Utilise"
msgid "Default Location"
msgstr "Emplacement par défaut"
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Stock total"
@@ -6755,7 +6752,7 @@ msgstr "Stock total"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Catégorie de composant"
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr "Nom de l'article"
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr "Catégorie de la pièce"
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr "Propriétaire responsable de cette pièce"
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr "Ventes multiples"
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr "Coût minimum de vente"
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr "Notes additionnelles"
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr "Nom de test"
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr "Activé"
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr "Requis"
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr "Valeur requise"
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Valeur par Défaut"
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Surplus"
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr "Validée"
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr "Devise d'achat de l'item"
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr "Copier l'image"
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr "Copier les paramètres"
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
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/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr "Impression étiquette"
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr "Dernier numéro de série"
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr "Rechercher un numéro de série"
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr "Modifier"
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr "Extension Intégrée"
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
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:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr "Modèle de nom de fichier"
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr "Filtres"
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr "Largeur [mm]"
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr "Largeur de l'étiquette, spécifiée en mm"
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr "Hauteur [mm]"
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr "Hauteur de l'étiquette, spécifiée en mm"
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr "Extrait "
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr "Elément"
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr "Résultat"
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr "Propriétaire"
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr "La quantité ne correspond pas au nombre de numéros de série"
msgid "Serial numbers already exist"
msgstr "Les numéros de série existent déjà"
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Assemblage"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr "page précédente"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr "Accéder au numéro de série précédent"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr "Accéder au numéro de série suivant"
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr "Ajouter une pièce jointe"
msgid "Barcode Identifier"
msgstr "Identifiant du code-barres"
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr "Redémarrage du serveur nécessaire"
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr "Une option de configuration a été modifiée, ce qui nécessite un redémarrage du serveur"
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr "Contactez votre administrateur système pour plus d'informations"
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po
index 7706c4526491..e1495ce9d1f2 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr ""
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr "בחירה שגויה"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "שם"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "המספר חייב להיות תקין"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr ""
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "קישור חיצוני"
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr "כמות"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "מבוטל"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "הושלם"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "משתמש"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr "קישור"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "קובץ מצורף"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "קובץ חסר"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "חסר קישור חיצוני"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "בחר קובץ לצירוף"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "הערה"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "שם קובץ"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po
index 4d3cf26f4cab..c6becd92057d 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
"Language: hi_IN\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr ""
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr ""
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr ""
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr ""
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr ""
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr ""
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr ""
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr ""
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr ""
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr ""
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr ""
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr ""
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po
index 49905f3117bf..43b2a5170938 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Language: hu_HU\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Kínai (Hagyományos)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] Bejelentkezés"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Duplikált nevek nem lehetnek ugyanazon szülő alatt"
msgid "Invalid choice"
msgstr "Érvénytelen választás"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Név"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Kiszolgálóhiba"
msgid "An error has been logged by the server."
msgstr "A kiszolgáló egy hibaüzenetet rögzített."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Érvényes számnak kell lennie"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Válassz pénznemet a lehetőségek közül"
msgid "Username"
msgstr "Felhasználónév"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "Keresztnév"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr "A felhasználó keresztneve"
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "Vezetéknév"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr "A felhasználó vezetékneve"
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr "A felhasználó e-mail címe"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr "Személyzet"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
-msgstr ""
+msgstr "Van-e a felhasználónak személyzeti jogosultsága"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr "Rendszergazda"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
-msgstr ""
+msgstr "A felhasználó rendszergazda-e"
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr "Aktív"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr "Aktív a felhasználói fiók"
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "Önnek nincs joga változtatni ezen a felhasználói szerepkörön."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Csak a superuser-ek hozhatnak létre felhasználókat"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "A fiókod sikeresen létrejött."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "Kérlek használd a jelszó visszállítás funkciót a belépéshez"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "Üdvözlet az InvenTree-ben"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Érvénytelen érték"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Adat fájl"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Fájl kiválasztása feltöltéshez"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Nem támogatott fájltípus"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Fájl túl nagy"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Nem találhatók oszlopok a fájlban"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Nincsenek adatsorok a fájlban"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Nincs adatsor megadva"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Nincs adat oszlop megadva"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Szükséges oszlop hiányzik: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Duplikált oszlop: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Távoli kép"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "A távoli kép URL-je"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
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:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Háttér folyamat ellenőrzés sikertelen"
@@ -735,7 +735,7 @@ msgstr "Szülő gyártás"
#: build/api.py:59
msgid "Ancestor Build"
-msgstr ""
+msgstr "Szülő Gyártás"
#: build/api.py:78 order/api.py:92 templates/js/translated/table_filters.js:101
#: templates/js/translated/table_filters.js:549
@@ -753,13 +753,13 @@ msgstr "Kiállította"
#: build/api.py:114
msgid "Assigned To"
-msgstr ""
+msgstr "Hozzárendelve"
#: build/api.py:275
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:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "A gyártást be kell fejezni a törlés előtt"
msgid "Consumable"
msgstr "Fogyóeszköz"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "Opcionális"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -793,7 +793,7 @@ msgstr "Követett"
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:779
msgid "Testable"
-msgstr ""
+msgstr "Ellenőrizhető"
#: build/api.py:325 part/admin.py:144 templates/js/translated/build.js:1920
#: templates/js/translated/build.js:2823
@@ -816,7 +816,7 @@ msgstr "Lefoglalva"
msgid "Available"
msgstr "Elérhető"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Elérhető"
msgid "Build Order"
msgstr "Gyártási utasítás"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -838,15 +838,15 @@ msgstr "Gyártási utasítások"
#: build/models.py:136
msgid "Assembly BOM has not been validated"
-msgstr ""
+msgstr "Az alkatrészjegyzék még nincs jóváhagyva"
#: build/models.py:143
msgid "Build order cannot be created for an inactive part"
-msgstr ""
+msgstr "Nem lehet inaktív alkatrészre Gyártást kezdeményezni"
#: build/models.py:150
msgid "Build order cannot be created for an unlocked part"
-msgstr ""
+msgstr "Nem lehet lezáratlan alkatrészre Gyártást kezdeményezni"
#: build/models.py:164
msgid "Invalid choice for parent build"
@@ -866,7 +866,7 @@ msgstr "Gyártási utasítás azonosító"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr "Felhasználó vagy csoport aki felelős ezért a gyártásért"
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Külső link"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Link külső URL-re"
@@ -1110,7 +1110,7 @@ msgstr "A {build} gyártási utasítás elkészült"
msgid "A build order has been completed"
msgstr "Gyártási utasítás elkészült"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "Nincs gyártási kimenet megadva"
@@ -1122,37 +1122,37 @@ msgstr "Gyártási kimenet már kész"
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:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "Mennyiségnek nullánál többnek kell lennie"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
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:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, 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:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
-msgstr ""
+msgstr "Gyártási Rendelés Sor Tétel"
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr "Gyártás objektum"
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr "Gyártás objektum"
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr "Gyártás objektum"
msgid "Quantity"
msgstr "Mennyiség"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr "Gyártáshoz szükséges mennyiség"
-#: build/models.py:1586
+#: build/models.py:1597
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:1595
+#: build/models.py:1606
#, 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:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "Készlet túlfoglalva"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie"
-#: build/models.py:1617
+#: build/models.py:1628
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:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel"
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,28 +1241,28 @@ msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel"
msgid "Stock Item"
msgstr "Készlet tétel"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Forrás készlet tétel"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Készlet mennyiség amit foglaljunk a gyártáshoz"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Beépítés ebbe"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Cél készlet tétel"
#: build/serializers.py:107
msgid "Build Level"
-msgstr ""
+msgstr "Gyártási Szint"
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr "Alkatrész neve"
@@ -1273,11 +1273,11 @@ msgstr "Projekt kód címke"
#: build/serializers.py:133
msgid "Create Child Builds"
-msgstr ""
+msgstr "Leszármazott Gyártások Létrehozása"
#: build/serializers.py:134
msgid "Automatically generate child build orders"
-msgstr ""
+msgstr "Leszármazott Gyártások létrehozása automatikusan"
#: build/serializers.py:216 build/serializers.py:968
#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "Add meg a sorozatszámokat a gyártás kimenetéhez"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr "A kész gyártási kimenetek helye"
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1476,11 +1476,11 @@ msgstr "Szükséges gyártási mennyiség nem lett elérve"
#: build/serializers.py:818
msgid "Build order has open child build orders"
-msgstr ""
+msgstr "A Gyártásnak nyitott leszármazott Gyártása van"
#: build/serializers.py:821
msgid "Build order must be in production state"
-msgstr ""
+msgstr "A Gyártásnak folyamatban kell lennie"
#: build/serializers.py:824 templates/js/translated/build.js:307
msgid "Build order has incomplete outputs"
@@ -1523,7 +1523,7 @@ msgstr "Gyártási kimenetet meg kell adni a követésre kötelezett alkatrésze
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Gyártási kimenetet nem lehet megadni a követésre kötelezett alkatrészek lefoglalásához"
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr "A lefoglalandó tételeket meg kell adni"
@@ -1569,7 +1569,7 @@ msgstr "Nem sikerült az automatikus lefoglalás feladatot elindítani"
#: build/serializers.py:1225
msgid "Supplier Part Number"
-msgstr ""
+msgstr "Beszállítói Cikkszám"
#: build/serializers.py:1226 company/models.py:503
msgid "Manufacturer Part Number"
@@ -1582,16 +1582,16 @@ msgstr "Hely neve"
#: build/serializers.py:1228
msgid "Build Reference"
-msgstr ""
+msgstr "Gyártási Hivatkozás"
#: build/serializers.py:1229
msgid "BOM Reference"
-msgstr ""
+msgstr "Alkatrészjegyzék Hivatkozás"
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1601,12 +1601,12 @@ msgid "Packaging"
msgstr "Csomagolás"
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr "Alkatrész ID"
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr "Alkatrész IPN"
@@ -1617,16 +1617,16 @@ msgstr "Alkatrész leírása"
#: build/serializers.py:1239
msgid "BOM Part ID"
-msgstr ""
+msgstr "Alkatrészjegyzék Cikk Azonosító"
#: build/serializers.py:1240
msgid "BOM Part Name"
-msgstr ""
+msgstr "Alkatrészjegyzék Alkatrész Név"
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1645,17 +1645,17 @@ msgstr "Sorozatszám"
msgid "Allocated Quantity"
msgstr "Lefoglalt mennyiség"
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr "Elérhető mennyiség"
#: build/serializers.py:1327
msgid "Part Category ID"
-msgstr ""
+msgstr "Alkatrész Kategória Azonosító"
#: build/serializers.py:1328
msgid "Part Category Name"
-msgstr ""
+msgstr "Alkatrész kategória Neve"
#: build/serializers.py:1335 common/models.py:1515 part/admin.py:113
#: part/models.py:1178 templates/js/translated/table_filters.js:150
@@ -1666,15 +1666,15 @@ msgstr "Követésre kötelezett"
#: build/serializers.py:1336
msgid "Inherited"
-msgstr ""
+msgstr "Örökölt"
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046
#: templates/js/translated/build.js:2714
msgid "Allow Variants"
msgstr "Változatok"
-#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr "Alkatrészjegyzék tétel"
@@ -1685,7 +1685,7 @@ msgid "Allocated Stock"
msgstr "Lefoglalt készlet"
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1693,13 +1693,13 @@ msgstr "Lefoglalt készlet"
msgid "On Order"
msgstr "Rendelve"
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr "Gyártásban"
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1707,17 +1707,17 @@ msgstr "Elérhető készlet"
#: build/serializers.py:1369
msgid "Available Substitute Stock"
-msgstr ""
+msgstr "Elérhető Helyettesítő Készlet"
#: build/serializers.py:1370
msgid "Available Variant Stock"
-msgstr ""
+msgstr "Elérhető Készlet Változatokból"
#: build/serializers.py:1371
msgid "Total Available Stock"
-msgstr ""
+msgstr "Teljes Elérhető Készlet"
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr "Külső raktárkészlet"
@@ -1746,7 +1746,7 @@ msgstr "Törölve"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Kész"
@@ -1839,7 +1839,7 @@ msgstr "Gyártás másolása"
#: build/templates/build/build_base.html:76
msgid "Hold Build"
-msgstr ""
+msgstr "Gyártás felfüggesztése"
#: build/templates/build/build_base.html:79
msgid "Cancel Build"
@@ -1850,12 +1850,9 @@ msgid "Delete Build"
msgstr "Gyártás törlése"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
-msgstr ""
+msgstr "Gyártás Kiadása"
#: build/templates/build/build_base.html:91
#: build/templates/build/build_base.html:92
@@ -1932,7 +1929,7 @@ msgstr "Befejezett kimenetek"
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1948,11 +1945,11 @@ msgstr "Prioritás"
#: build/templates/build/build_base.html:267
msgid "Issue Build Order"
-msgstr ""
+msgstr "Gyártási Rendelés Kiadása"
#: build/templates/build/build_base.html:271
msgid "Issue this Build Order?"
-msgstr ""
+msgstr "Kiadja ezt a Gyártási Rendelést?"
#: build/templates/build/build_base.html:302
msgid "Delete Build Order"
@@ -1992,7 +1989,7 @@ msgid "Allocated Parts"
msgstr "Lefoglalt alkatrészek"
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2031,7 +2028,7 @@ msgstr "Alárendelt gyártások"
#: build/templates/build/detail.html:177
msgid "Build Order Line Items"
-msgstr ""
+msgstr "Gyártási Rendelés Sor Tétel"
#: build/templates/build/detail.html:181
msgid "Deallocate stock"
@@ -2092,7 +2089,7 @@ msgstr "Befejezett gyártási kimenetek"
#: build/templates/build/detail.html:273
msgid "Build test statistics"
-msgstr ""
+msgstr "Gyártási Ellenőrzési Statisztika"
#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27
#: company/templates/company/detail.html:229
@@ -2147,23 +2144,23 @@ msgstr "Befejezetlen kimenetek"
#: build/templates/build/sidebar.html:24
#: part/templates/part/part_sidebar.html:56
msgid "Test Statistics"
-msgstr ""
+msgstr "Ellenőrzési Statisztika"
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
-msgstr ""
+msgstr "Ez egy hivatkozás"
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
-msgstr ""
+msgstr "Ez egy állomány"
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
-msgstr ""
+msgstr "A felhasználó nem jogosult ezen mellékletek törlésére"
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
-msgstr ""
+msgstr "A felhasználó nem jogosult ezen melléklet törlésére"
#: common/currency.py:132
msgid "Invalid currency code"
@@ -2353,8 +2350,8 @@ msgstr "Milyen gyakran frissítse az árfolyamokat (nulla a kikapcsoláshoz)"
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "nap"
@@ -2488,19 +2485,19 @@ msgstr "Webkamerás kódolvasás engedélyezése a böngészőből"
#: common/models.py:1415
msgid "Barcode Show Data"
-msgstr ""
+msgstr "Vonalkód Adat Megjelenítése"
#: common/models.py:1416
msgid "Display barcode data in browser as text"
-msgstr ""
+msgstr "Vonalkód adat megjelenítése a böngészőben szövegként"
#: common/models.py:1421
msgid "Barcode Generation Plugin"
-msgstr ""
+msgstr "Vonalkód Generáló Plugin"
#: common/models.py:1422
msgid "Plugin to use for internal barcode data generation"
-msgstr ""
+msgstr "Belső vonalkód generálásra használatos plugin"
#: common/models.py:1427
msgid "Part Revisions"
@@ -2512,19 +2509,19 @@ msgstr "Alkatrész változat vagy verziószám tulajdonság használata"
#: common/models.py:1433
msgid "Assembly Revision Only"
-msgstr ""
+msgstr "Csak Összeállítás Verzió"
#: common/models.py:1434
msgid "Only allow revisions for assembly parts"
-msgstr ""
+msgstr "Csak összeállított alkatrészeknek lehessen verziója"
#: common/models.py:1439
msgid "Allow Deletion from Assembly"
-msgstr ""
+msgstr "Lehessen törölni az Összeállításból"
#: common/models.py:1440
msgid "Allow deletion of parts which are used in an assembly"
-msgstr ""
+msgstr "Lehessen olyan alkatrészt törölni ami Összeállításban szerepel"
#: common/models.py:1445
msgid "IPN Regex"
@@ -2582,9 +2579,9 @@ msgstr "Kategória paraméter sablonok másolása"
msgid "Copy category parameter templates when creating a part"
msgstr "Kategória paraméter sablonok másolása alkatrész létrehozásakor"
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2599,7 +2596,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:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr "Összetevő"
@@ -2824,7 +2821,7 @@ 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:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "Lapméret"
@@ -2833,914 +2830,914 @@ msgid "Default page size for PDF reports"
msgstr "Alapértelmezett lapméret a PDF riportokhoz"
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr "Teszt riportok engedélyezése"
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr "Teszt riportok előállításának engedélyezése"
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr "Teszt riportok hozzáadása"
-
-#: common/models.py:1716
-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:1722
msgid "Globally Unique Serials"
msgstr "Globálisan egyedi sorozatszámok"
-#: common/models.py:1723
+#: common/models.py:1709
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:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr "Sorozatszámok automatikus kitöltése"
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr "Sorozatszámok automatikus kitöltése a formokon"
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr "Kimerült készlet törlése"
-#: common/models.py:1736
+#: common/models.py:1722
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:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr "Batch kód sablon"
-#: common/models.py:1744
+#: common/models.py:1730
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:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr "Készlet lejárata"
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr "Készlet lejárat kezelésének engedélyezése"
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr "Lejárt készlet értékesítése"
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr "Lejárt készlet értékesítésének engedélyezése"
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr "Álló készlet ideje"
-#: common/models.py:1763
+#: common/models.py:1749
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:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr "Lejárt készlet gyártása"
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr "Gyártás engedélyezése lejárt készletből"
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr "Készlet tulajdonosok kezelése"
-#: common/models.py:1777
+#: common/models.py:1763
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:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr "Hely alapértelmezett ikon"
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr "Hely alapértelmezett ikon (üres ha nincs)"
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr "Beépített készlet megjelenítése"
-#: common/models.py:1789
+#: common/models.py:1775
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:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr "Tételek telepítésekor a darabjegyzék ellenőrzése"
-#: common/models.py:1796
+#: common/models.py:1782
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:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
-msgstr ""
+msgstr "Lehet Hiányzó Készletet Mozgatni"
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
-msgstr ""
+msgstr "Lehet-e olyan készleteket mozgatni készlethelyek között amik nincsenek raktáron"
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr "Gyártási utasítás azonosító minta"
-#: common/models.py:1812
+#: common/models.py:1798
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:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr "Felelős tulajdonos szükséges"
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr "Minden rendeléshez felelőst kell rendelni"
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
-msgstr ""
+msgstr "Szükséges Aktív Alkatrész"
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
-msgstr ""
+msgstr "Inaktív alkatrészekre nem lehet Gyártási Rendelést létrehozni"
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
-msgstr ""
+msgstr "Elvárás a Lezárt Alkatrész"
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
-msgstr ""
+msgstr "Megakadályozza, hogy nem lezárt alkatrészekre gyártási rendelést lehessen indítani"
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
-msgstr ""
+msgstr "Jóváhagyott Alkatrészjegyzék Kötelező"
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
-msgstr ""
+msgstr "Megakadályozza gyártási rendelés készítését ha nincsen az Alkatrészjegyzék jóváhagyva"
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
-msgstr ""
+msgstr "Leszármazott Gyártásoknak Lezártnak Kell Lennie"
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
-msgstr ""
+msgstr "Amíg minden leszármazott gyártás le nincsen zárva nem lehet a szülő gyártást lezárni"
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr "Blokkolás a tesztek sikeres végrehajtásáig"
-#: common/models.py:1854
+#: common/models.py:1840
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:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr "Visszavétel engedélyezése"
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr "Visszavételek engedélyezése a felületen"
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr "Visszavétel azonosító minta"
-#: common/models.py:1868
+#: common/models.py:1854
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:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr "Befejezett visszavétel szerkesztése"
-#: common/models.py:1882
+#: common/models.py:1868
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:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr "Vevői rendelés azonosító minta"
-#: common/models.py:1890
+#: common/models.py:1876
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:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr "Vevői rendeléshez alapértelmezett szállítmány"
-#: common/models.py:1903
+#: common/models.py:1889
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:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr "Befejezett vevői rendelés szerkesztése"
-#: common/models.py:1910
+#: common/models.py:1896
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:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
-msgstr ""
+msgstr "Leszállított Rendelések Készre jelölése"
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
-msgstr ""
+msgstr "Leszállítottnak jelölt Értékesítési rendelések automatikusan Kész-re lesznek állítva, a \"Leszállított\" állapot átugrásával"
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr "Beszerzési rendelés azonosító minta"
-#: common/models.py:1926
+#: common/models.py:1912
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:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr "Befejezett beszerzési rendelés szerkesztése"
-#: common/models.py:1940
+#: common/models.py:1926
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:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr "Beszerzési rendelések automatikus befejezése"
-#: common/models.py:1948
+#: common/models.py:1934
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:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr "Elfelejtett jelszó engedélyezése"
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr "Elfelejtett jelszó funkció engedélyezése a bejentkező oldalon"
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr "Regisztráció engedélyezése"
-#: common/models.py:1962
+#: common/models.py:1948
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:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr "SSO engedélyezése"
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr "SSO engedélyezése a bejelentkező oldalon"
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr "SSO regisztráció engedélyezése"
-#: common/models.py:1975
+#: common/models.py:1961
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:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
-msgstr ""
+msgstr "SSO csoport szinkronizálás engedélyezése"
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
-msgstr ""
+msgstr "Az InvenTree csoportok szinkronizálása a hitelesítésszolgáltatóhoz"
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
-msgstr ""
+msgstr "SSO csoport kulcs"
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
-msgstr ""
+msgstr "A csoportkérés tulajdonság neve amit a hitelesítésszolgáltató nyújt"
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
-msgstr ""
+msgstr "SSO csoport hozzárendelés"
-#: common/models.py:1999
+#: common/models.py:1985
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
-msgstr ""
+msgstr "Az SSO csoportok hozzárendelése az InvenTree csoportokhoz. Ha a helyi csoport nem létezik, létre lesz hozva."
-#: common/models.py:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
-msgstr ""
+msgstr "Az SSO-n kívüli csoportok eltávolítása"
-#: common/models.py:2007
+#: common/models.py:1993
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 ""
+msgstr "Ha egy felhasználóhoz rendelt csoport nem létezik az azonosításszolgáltatóban azt eltávolítsuk el. Ennek a kikapcsolása biztonsági problémákhoz vezethet"
-#: common/models.py:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "Email szükséges"
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr "Kötelező email megadás regisztrációkor"
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr "SSO felhasználók automatikus kitöltése"
-#: common/models.py:2021
+#: common/models.py:2007
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:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr "Email kétszer"
-#: common/models.py:2028
+#: common/models.py:2014
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:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr "Jelszó kétszer"
-#: common/models.py:2034
+#: common/models.py:2020
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:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr "Engedélyezett domainek"
-#: common/models.py:2041
+#: common/models.py:2027
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:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr "Csoport regisztráláskor"
-#: common/models.py:2049
+#: common/models.py:2035
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 ""
+msgstr "Ehhez a csoporthoz lesznek az új felhasználók rendelve. Ha az SSO csoport szinkronizálás engedélyezve van, akkor ez a csoport csak akkor lesz hozzárendelve a felhasználóhoz ha az azonosítás szolgáltató semmilyen csoportot nem rendelt hozzá."
-#: common/models.py:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr "Többfaktoros hitelesítés kényszerítése"
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr "A felhasználóknak többfaktoros hitelesítést kell használniuk."
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr "Pluginok ellenőrzése indításkor"
-#: common/models.py:2063
+#: common/models.py:2049
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:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr "Plugin frissítések ellenőrzése"
-#: common/models.py:2072
+#: common/models.py:2058
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:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr "URL integráció engedélyezése"
-#: common/models.py:2079
+#: common/models.py:2065
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:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr "Navigációs integráció engedélyezése"
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr "Navigációs integráció engedélyezése a pluginok számára"
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr "App integráció engedélyezése"
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr "App hozzáadásának engedélyezése a pluginok számára"
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr "Ütemezés integráció engedélyezése"
-#: common/models.py:2100
+#: common/models.py:2086
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:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr "Esemény integráció engedélyezése"
-#: common/models.py:2107
+#: common/models.py:2093
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:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr "Projektszámok engedélyezése"
-#: common/models.py:2114
+#: common/models.py:2107
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:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr "Leltár funkció"
-#: common/models.py:2121
+#: common/models.py:2114
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:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr "Külső helyek nélkül"
-#: common/models.py:2129
+#: common/models.py:2122
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:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr "Automatikus leltár időpontja"
-#: common/models.py:2137
+#: common/models.py:2130
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:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr "Riport törlési gyakoriság"
-#: common/models.py:2145
+#: common/models.py:2138
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:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr "Felhasználók teljes nevének megjelenítése"
-#: common/models.py:2153
+#: common/models.py:2146
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:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr "Teszt állomás adatok engedélyezése"
-#: common/models.py:2159
+#: common/models.py:2152
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:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
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:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr "Inaktív alkatrészek elrejtése"
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr "Nem aktív alkatrészek elrejtése a kezdőlapon"
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr "Értesítésre beállított alkatrészek megjelenítése"
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr "Alkatrész értesítések megjelenítése a főoldalon"
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr "Értesítésre beállított kategóriák megjelenítése"
-#: common/models.py:2229
+#: common/models.py:2230
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:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr "Legújabb alkatrészek megjelenítése"
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr "Legújabb alkatrészek megjelenítése a főoldalon"
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr "Hibás alkatrészjegyzékek megjelenítése"
-#: common/models.py:2241
+#: common/models.py:2242
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:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr "Legfrissebb készlet változások megjelenítése"
-#: common/models.py:2247
+#: common/models.py:2248
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:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr "Alacsony készlet megjelenítése"
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr "Alacsony készletek megjelenítése a főoldalon"
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr "Kimerült készlet megjelenítése"
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr "Kimerült készletek megjelenítése a főoldalon"
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr "Gyártáshoz szükséges készlet megjelenítése"
-#: common/models.py:2265
+#: common/models.py:2266
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:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr "Lejárt készlet megjelenítése"
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr "Lejárt készletek megjelenítése a főoldalon"
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr "Állott készlet megjelenítése"
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr "Álló készletek megjelenítése a főoldalon"
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr "Függő gyártások megjelenítése"
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr "Folyamatban lévő gyártások megjelenítése a főoldalon"
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr "Késésben lévő gyártások megjelenítése"
-#: common/models.py:2289
+#: common/models.py:2290
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:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr "Kintlévő beszerzési rendelések megjelenítése"
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr "Kintlévő beszerzési rendelések megjelenítése a főoldalon"
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr "Késésben lévő megrendelések megjelenítése"
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr "Késésben lévő megrendelések megjelenítése a főoldalon"
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr "Függő vevői rendelések megjelenítése"
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr "Függő vevői rendelések megjelenítése a főoldalon"
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr "Késésben lévő vevői rendelések megjelenítése"
-#: common/models.py:2313
+#: common/models.py:2314
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:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr "Függő vevői szállítmányok megjelenítése"
-#: common/models.py:2319
+#: common/models.py:2320
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:2324
+#: common/models.py:2325
msgid "Show News"
msgstr "Hírek megjelenítése"
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr "Hírek megjelenítése a főoldalon"
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr "Beágyazott címke megjelenítés"
-#: common/models.py:2332
+#: common/models.py:2333
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:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr "Alapértelmezett címkenyomtató"
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr "Melyik címkenyomtató legyen az alapértelmezett"
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr "Beágyazott riport megjelenítés"
-#: common/models.py:2348
+#: common/models.py:2349
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:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr "Alkatrészek keresése"
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr "Alkatrészek megjelenítése a keresési előnézetben"
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr "Beszállítói alkatrészek keresése"
-#: common/models.py:2361
+#: common/models.py:2362
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:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr "Gyártói alkatrészek keresése"
-#: common/models.py:2367
+#: common/models.py:2368
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:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr "Inaktív alkatrészek elrejtése"
-#: common/models.py:2373
+#: common/models.py:2374
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:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr "Kategóriák keresése"
-#: common/models.py:2379
+#: common/models.py:2380
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:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr "Készlet keresése"
-#: common/models.py:2385
+#: common/models.py:2386
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:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr "Nem elérhető készlet tételek elrejtése"
-#: common/models.py:2392
+#: common/models.py:2393
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:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr "Helyek keresése"
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr "Készlet helyek megjelenítése a keresési előnézetben"
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr "Cégek keresése"
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr "Cégek megjelenítése a keresési előnézetben"
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr "Gyártási utasítások keresése"
-#: common/models.py:2411
+#: common/models.py:2412
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:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr "Beszerzési rendelések keresése"
-#: common/models.py:2417
+#: common/models.py:2418
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:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr "Inaktív beszerzési rendelések kihagyása"
-#: common/models.py:2424
+#: common/models.py:2425
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:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr "Vevői rendelések keresése"
-#: common/models.py:2431
+#: common/models.py:2432
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:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr "Inaktív vevői rendelések kihagyása"
-#: common/models.py:2438
+#: common/models.py:2439
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:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr "Visszavétel keresése"
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr "Visszavételek megjelenítése a keresés előnézet ablakban"
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr "Inaktív visszavételek kihagyása"
-#: common/models.py:2452
+#: common/models.py:2453
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:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr "Keresési előnézet eredményei"
-#: common/models.py:2460
+#: common/models.py:2461
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:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr "Regex keresés"
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr "Reguláris kifejezések engedélyezése a keresésekben"
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr "Teljes szó keresés"
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr "A keresések csak teljes szóra egyező találatokat adjanak"
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr "Mennyiség megjelenítése a formokon"
-#: common/models.py:2479
+#: common/models.py:2480
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:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr "ESC billentyű zárja be a formot"
-#: common/models.py:2485
+#: common/models.py:2486
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:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr "Rögzített menüsor"
-#: common/models.py:2491
+#: common/models.py:2492
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:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr "Dátum formátum"
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr "Preferált dátum formátum a dátumok kijelzésekor"
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Alkatrész ütemezés"
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr "Alkatrész ütemezési információk megjelenítése"
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Alkatrész leltár"
-#: common/models.py:2518
+#: common/models.py:2519
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:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr "Táblázati szöveg hossz"
-#: common/models.py:2526
+#: common/models.py:2527
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:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr "Hibariportok fogadása"
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr "Értesítések fogadása a rendszerhibákról"
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr "Utoljára használt nyomtató gépek"
-#: common/models.py:2539
+#: common/models.py:2540
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:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Felhasználó"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr "Ársáv mennyiség"
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3748,96 +3745,96 @@ msgstr "Ársáv mennyiség"
msgid "Price"
msgstr "Ár"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr "Egységár egy meghatározott mennyiség esetén"
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr "Végpont"
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr "Végpont ahol ez a webhook érkezik"
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr "Webhook neve"
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr "Aktív-e ez a webhook"
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr "Token"
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr "Token a hozzáféréshez"
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr "Titok"
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr "Megosztott titok a HMAC-hoz"
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr "Üzenet azonosító"
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr "Egyedi azonosító ehhez az üzenethez"
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr "Kiszolgáló"
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr "Kiszolgáló ahonnan ez az üzenet érkezett"
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr "Fejléc"
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr "Üzenet fejléce"
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr "Törzs"
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr "Üzenet törzse"
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr "Végpont amin ez az üzenet érkezett"
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr "Dolgozott rajta"
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr "Befejeződött a munka ezzel az üzenettel?"
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr "Azonosító"
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Cím"
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3854,219 +3851,219 @@ msgstr "Cím"
msgid "Link"
msgstr "Link"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr "Közzétéve"
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Összefoglaló"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr "Elolvasva"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr "Elolvasva?"
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "Kép"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr "Képfájl"
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
-msgstr ""
+msgstr "A képhez tartozó model típus"
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
-msgstr ""
+msgstr "A képhez tartozó model azonosító"
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
-msgstr ""
+msgstr "Egyedi mértékegység"
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
-msgstr ""
+msgstr "A mértékegység szimbólumának egyedinek kell lennie"
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr "A mértékegységnek valós azonosítónak kell lennie"
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr "Egység neve"
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "Szimbólum"
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr "Opcionális mértékegység szimbólum"
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr "Definíció"
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr "Mértékegység definíció"
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Melléklet"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Hiányzó fájl"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Hiányzó külső link"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Válaszd ki a mellekelni kívánt fájlt"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Megjegyzés"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
-msgstr ""
+msgstr "Melléklet megjegyzés"
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
-msgstr ""
+msgstr "Feltöltés dátuma"
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
-msgstr ""
+msgstr "A fájl feltöltésének dátuma"
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr "Fájl mérete"
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr "Fájlméret bájtban"
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
-msgstr ""
+msgstr "A melléklet model típusa érvénytelen"
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr "Kulcs"
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
-msgstr ""
+msgstr "A model adatbázisba tárolandó érték"
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
-msgstr ""
+msgstr "Az állapot neve"
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
-msgstr ""
+msgstr "Címke"
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
-msgstr ""
+msgstr "A felületen megjelenített címke"
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
-msgstr ""
+msgstr "Szín"
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
-msgstr ""
+msgstr "A felöleten megjelenő szín"
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
-msgstr ""
+msgstr "Logikai kulcs"
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
-msgstr ""
+msgstr "Az állapot logikai kulcsa amely megegyezik az üzleti logika egyedi állapotával"
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
-msgstr ""
+msgstr "Model"
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
-msgstr ""
+msgstr "A Model amihez ez az állapot tartozik"
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
-msgstr ""
+msgstr "Hivatkozott Állapot Készlet"
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
-msgstr ""
+msgstr "Az az Állapot készlet, melyet ez az egyedi állapot kibővít"
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
-msgstr ""
+msgstr "Egyedi Állapot"
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
-msgstr ""
+msgstr "Egyedi Állapotok"
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
-msgstr ""
+msgstr "Modelt választani kötelező"
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
-msgstr ""
+msgstr "Kulcsot választani kötelező"
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
-msgstr ""
+msgstr "Logikai kulcsot választani kötelező"
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
-msgstr ""
+msgstr "A kulcs és a logikai kulcs nem lehet azonos"
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
-msgstr ""
+msgstr "Kötelező kiválasztani a bővítendő állapotot"
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
-msgstr ""
+msgstr "A hivatkozott állapot nem található"
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
-msgstr ""
+msgstr "A kulcsnak eltérőnek kell lennie a hivatkozott állapotok logikai kulcsaitól"
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
-msgstr ""
+msgstr "A logikai kulcsnak szerepelnie kell a hivatkozott állapotok logikai kulcsai közt"
#: common/notifications.py:310
#, python-brace-format
@@ -4102,93 +4099,93 @@ msgstr "Készlet érkezett vissza egy visszavétel miatt"
msgid "Error raised by plugin"
msgstr "Plugin hiba"
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr "Folyamatban"
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr "Folyamatban lévő feladatok"
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr "Ütemezett Feladatok"
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr "Hibás feladatok"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr "Feladat ID"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr "Egyedi feladat ID"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr "Zárol"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr "Zárolási idő"
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr "Feladat neve"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr "Funkció"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr "Funkció neve"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr "Paraméterek"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr "Feladat paraméterei"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr "Kulcsszó paraméterek"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr "Feladat kulcsszó paraméterek"
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Fájlnév"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr "Modell típusa"
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
-msgstr ""
+msgstr "A felhasználónak nincs joga létrehozni vagy módosítani ehhez a modelhez tartozó mellékleteket"
#: common/validators.py:35
msgid "No attachment model type provided"
-msgstr ""
+msgstr "A melléklethez nem tartozik model típus"
#: common/validators.py:41
msgid "Invalid attachment model type"
-msgstr ""
+msgstr "Érvénytelen melléklet model típus"
#: common/validators.py:82
msgid "Minimum places cannot be greater than maximum places"
-msgstr ""
+msgstr "A legkisebb helyiérték nem lehet nagyobb mint a legnagyobb helyiérték"
#: common/validators.py:94
msgid "Maximum places cannot be less than minimum places"
-msgstr ""
+msgstr "A legnagyobb helyiérték nem lehet kisebb mint a legkisebb helyiérték"
#: common/validators.py:105
msgid "An empty domain is not allowed."
@@ -4321,7 +4318,7 @@ msgstr "Ez a vállalat aktív?"
#: company/models.py:165
msgid "Is customer"
-msgstr ""
+msgstr "Vevő"
#: company/models.py:166
msgid "Do you sell items to this company?"
@@ -4329,7 +4326,7 @@ msgstr "Értékesítesz alkatrészeket ennek a cégnek?"
#: company/models.py:171
msgid "Is supplier"
-msgstr ""
+msgstr "Beszállító"
#: company/models.py:172
msgid "Do you purchase items from this company?"
@@ -4337,7 +4334,7 @@ msgstr "Vásárolsz alkatrészeket ettől a cégtől?"
#: company/models.py:177
msgid "Is manufacturer"
-msgstr ""
+msgstr "Gyártó"
#: company/models.py:178
msgid "Does this company manufacture parts?"
@@ -4448,12 +4445,12 @@ msgstr "Link a címinformációkhoz (külső)"
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr "Gyártói alkatrész"
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Kiindulási alkatrész"
@@ -4464,8 +4461,8 @@ msgstr "Válassz alkatrészt"
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4480,7 +4477,7 @@ msgstr "Gyártó kiválasztása"
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4499,14 +4496,14 @@ msgstr "Gyártói alkatrész leírása"
#: company/models.py:572
msgid "Manufacturer Part Parameter"
-msgstr ""
+msgstr "Gyártói Cikkszám"
#: company/models.py:591
msgid "Parameter name"
msgstr "Paraméter neve"
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4517,7 +4514,7 @@ msgid "Parameter value"
msgstr "Paraméter értéke"
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4531,7 +4528,7 @@ msgstr "Paraméter mértékegység"
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4554,9 +4551,9 @@ msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészr
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4571,7 +4568,7 @@ msgstr "Beszállító"
msgid "Select supplier"
msgstr "Beszállító kiválasztása"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr "Beszállítói cikkszám"
@@ -4592,7 +4589,7 @@ msgid "Supplier part description"
msgstr "Beszállítói alkatrész leírása"
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4604,11 +4601,11 @@ msgstr "Beszállítói alkatrész leírása"
msgid "Note"
msgstr "Megjegyzés"
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr "alap költség"
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimális díj (pl. tárolási díj)"
@@ -4630,7 +4627,7 @@ msgstr "Csomagolási mennyiség"
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:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr "többszörös"
@@ -4652,7 +4649,7 @@ msgstr "Utolsó elérhetőségi adat frissítés"
#: company/models.py:1024
msgid "Supplier Price Break"
-msgstr ""
+msgstr "Beszállítói Ár Kedvezmény"
#: company/serializers.py:178
msgid "Default currency used for this supplier"
@@ -4660,9 +4657,9 @@ msgstr "Beszállító által használt alapértelmezett pénznem"
#: company/serializers.py:214
msgid "Company Name"
-msgstr ""
+msgstr "Cégnév"
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4736,7 +4733,7 @@ msgstr "Kép törlése"
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4940,7 +4937,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -4962,7 +4959,7 @@ msgstr "Új paraméter"
#: company/templates/company/manufacturer_part.html:177
msgid "Manufacturer Part Notes"
-msgstr ""
+msgstr "Gyártói Cikk Megjegyzés"
#: company/templates/company/manufacturer_part.html:225
#: templates/js/translated/part.js:1429
@@ -5031,7 +5028,7 @@ 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:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5070,7 +5067,7 @@ msgstr "Ársáv hozzáadása"
#: company/templates/company/supplier_part.html:270
msgid "Supplier Part Notes"
-msgstr ""
+msgstr "Szállítói Cikk Megjegyzés"
#: company/templates/company/supplier_part.html:305
msgid "Supplier Part QR Code"
@@ -5085,7 +5082,7 @@ 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:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5126,11 +5123,11 @@ msgstr "Új cég"
#: generic/states/fields.py:118
msgid "Custom status key"
-msgstr ""
+msgstr "Saját Állapot Kulcs"
#: generic/states/fields.py:119
msgid "Additional status information for this item"
-msgstr ""
+msgstr "További állapot információk erről a tételről"
#: generic/states/tests.py:22 order/status_codes.py:13
msgid "Placed"
@@ -5138,15 +5135,15 @@ msgstr "Kiküldve"
#: importer/mixins.py:261
msgid "Invalid export format"
-msgstr ""
+msgstr "Hibás export formátum"
#: importer/models.py:60
msgid "Timestamp"
-msgstr ""
+msgstr "Időbélyeg"
#: importer/models.py:65
msgid "Data file to import"
-msgstr ""
+msgstr "Importálandó adatfájl"
#: importer/models.py:74 templates/js/translated/tables.js:558
msgid "Columns"
@@ -5154,69 +5151,69 @@ msgstr "Oszlopok"
#: importer/models.py:85
msgid "Import status"
-msgstr ""
+msgstr "Betöltés állapota"
#: importer/models.py:95
msgid "Field Defaults"
-msgstr ""
+msgstr "Mező Alapértelmezett Érték"
#: importer/models.py:102
msgid "Field Overrides"
-msgstr ""
+msgstr "Mező Felülbírálás"
#: importer/models.py:109
msgid "Field Filters"
-msgstr ""
+msgstr "Mező Szűrők"
#: importer/models.py:231
msgid "Some required fields have not been mapped"
-msgstr ""
+msgstr "Néhány kötelező mező nem került hozzárendelésre"
#: importer/models.py:388
msgid "Column is already mapped to a database field"
-msgstr ""
+msgstr "Oszlop már adatbázis mezőhöz lett rendelve"
#: importer/models.py:393
msgid "Field is already mapped to a data column"
-msgstr ""
+msgstr "Adatbázis mező már adatfájl oszlophoz lett rendelve"
#: importer/models.py:402
msgid "Column mapping must be linked to a valid import session"
-msgstr ""
+msgstr "Az oszlop összerendelésnek egy helyes importálási művelethez kell kapcsolódnia"
#: importer/models.py:407
msgid "Column does not exist in the data file"
-msgstr ""
+msgstr "Az Oszlop nem létezik ebben a fájlban"
#: importer/models.py:414
msgid "Field does not exist in the target model"
-msgstr ""
+msgstr "A mező nem létezik a cél adatszerkezetben"
#: importer/models.py:418
msgid "Selected field is read-only"
-msgstr ""
+msgstr "Kijelölt mező csak olvasható"
#: importer/models.py:423 importer/models.py:494
msgid "Import Session"
-msgstr ""
+msgstr "Importálási művelet"
#: importer/models.py:427
msgid "Field"
-msgstr ""
+msgstr "Mező"
#: importer/models.py:429
msgid "Column"
-msgstr ""
+msgstr "Oszlop"
#: importer/models.py:498
msgid "Row Index"
-msgstr ""
+msgstr "Sor száma"
#: importer/models.py:501
msgid "Original row data"
-msgstr ""
+msgstr "Eredeti sor adat"
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr "Adat"
@@ -5230,87 +5227,87 @@ msgstr "Érvényes"
#: importer/operations.py:28 importer/operations.py:49
msgid "Unsupported data file format"
-msgstr ""
+msgstr "Nem támogatott adatfájl formátum"
#: importer/operations.py:40
msgid "Failed to open data file"
-msgstr ""
+msgstr "Adatfájl megnyitása sikertelen"
#: importer/operations.py:51
msgid "Invalid data file dimensions"
-msgstr ""
+msgstr "Az adatállomány méretei - szélessége nem megfelelő"
#: importer/serializers.py:91
msgid "Invalid field defaults"
-msgstr ""
+msgstr "Érvénytelen mező alapértelmezések"
#: importer/serializers.py:104
msgid "Invalid field overrides"
-msgstr ""
+msgstr "Érvénytelen mező felülbírálások"
#: importer/serializers.py:117
msgid "Invalid field filters"
-msgstr ""
+msgstr "Érvénytelen mező szűrések"
#: importer/serializers.py:178
msgid "Rows"
-msgstr ""
+msgstr "Sorok"
#: importer/serializers.py:179
msgid "List of row IDs to accept"
-msgstr ""
+msgstr "Az elfogadható azonosítók listája"
#: importer/serializers.py:192
msgid "No rows provided"
-msgstr ""
+msgstr "Nincs sor megadva"
#: importer/serializers.py:196
msgid "Row does not belong to this session"
-msgstr ""
+msgstr "A sor nem az aktuális művelethez kapcsolódik"
#: importer/serializers.py:199
msgid "Row contains invalid data"
-msgstr ""
+msgstr "A Sor érvénytelen adatot tartalmaz"
#: importer/serializers.py:202
msgid "Row has already been completed"
-msgstr ""
+msgstr "A sor már be lett fejezve"
#: importer/status_codes.py:13
msgid "Initializing"
-msgstr ""
+msgstr "Előkészítés"
#: importer/status_codes.py:18
msgid "Mapping Columns"
-msgstr ""
+msgstr "Oszlopok összerendelése"
#: importer/status_codes.py:21
msgid "Importing Data"
-msgstr ""
+msgstr "Adatok importálása"
#: importer/status_codes.py:24
msgid "Processing Data"
-msgstr ""
+msgstr "Adatok feldolgozása"
#: importer/validators.py:21
msgid "Data file exceeds maximum size limit"
-msgstr ""
+msgstr "Adatfájl meghaladja a maximális méretet"
#: importer/validators.py:26
msgid "Data file contains no headers"
-msgstr ""
+msgstr "Adatfájlból hiányzik a fejléc"
#: importer/validators.py:29
msgid "Data file contains too many columns"
-msgstr ""
+msgstr "Túl sok oszlop az adatfájlban"
#: importer/validators.py:32
msgid "Data file contains too many rows"
-msgstr ""
+msgstr "Túl sok sor az adatfájlban"
#: importer/validators.py:53
msgid "Value must be a valid dictionary object"
-msgstr ""
+msgstr "Az értéknek a érvényes szótár elemnek kell lennie"
#: machine/machine_types/label_printer.py:216
msgid "Copies"
@@ -5339,7 +5336,7 @@ msgstr "Nincs papír"
#: machine/machine_types/label_printer.py:236
msgid "Paper jam"
-msgstr ""
+msgstr "Elakadt a papír"
#: machine/machine_types/label_printer.py:237
msgid "Disconnected"
@@ -5444,7 +5441,7 @@ msgstr "Kintlévő"
#: order/api.py:132
msgid "Has Project Code"
-msgstr ""
+msgstr "Van projektszáma"
#: order/api.py:155 templates/js/translated/table_filters.js:201
#: templates/js/translated/table_filters.js:791
@@ -5474,7 +5471,7 @@ msgstr "A rendelés függőben"
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5592,7 +5589,7 @@ msgstr "Cég akinek a tételek értékesítésre kerülnek"
#: order/models.py:1004
msgid "Sales order status"
-msgstr ""
+msgstr "Értékesítési rendelés állapot"
#: order/models.py:1015 order/models.py:2159
msgid "Customer Reference "
@@ -5614,11 +5611,11 @@ msgstr "szállította"
#: order/models.py:1070
msgid "Order is already complete"
-msgstr ""
+msgstr "Rendelés már teljesítve"
#: order/models.py:1073
msgid "Order is already cancelled"
-msgstr ""
+msgstr "Rendelés már visszavonva"
#: order/models.py:1077
msgid "Only an open order can be marked as complete"
@@ -5666,7 +5663,7 @@ msgstr "Egységár"
#: order/models.py:1438
msgid "Purchase Order Line Item"
-msgstr ""
+msgstr "Vevői Rendelés Sortétel"
#: order/models.py:1462
msgid "Supplier part must match supplier"
@@ -5695,7 +5692,7 @@ msgid "Number of items received"
msgstr "Érkezett tételek száma"
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr "Beszerzési ár"
@@ -5710,11 +5707,11 @@ msgstr "Mit szeretne a vevő hol tároljuk ezt az alkatrészt?"
#: order/models.py:1580
msgid "Purchase Order Extra Line"
-msgstr ""
+msgstr "Vevői Rendelés Extra Sor"
#: order/models.py:1609
msgid "Sales Order Line Item"
-msgstr ""
+msgstr "Vevői Rendelés Sortétel"
#: order/models.py:1630
msgid "Virtual part cannot be assigned to a sales order"
@@ -5746,7 +5743,7 @@ msgstr "Szállított mennyiség"
#: order/models.py:1744
msgid "Sales Order Shipment"
-msgstr ""
+msgstr "Vevői Rendelés Szállítása"
#: order/models.py:1765
msgid "Date of shipment"
@@ -5769,7 +5766,7 @@ msgid "User who checked this shipment"
msgstr "Felhasználó aki ellenőrizte ezt a szállítmányt"
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr "Szállítmány"
@@ -5803,11 +5800,11 @@ msgstr "Szállítmány nem tartalmaz foglalt készlet tételeket"
#: order/models.py:1905
msgid "Sales Order Extra Line"
-msgstr ""
+msgstr "Vevői Rendelés Extra Sor"
#: order/models.py:1934
msgid "Sales Order Allocation"
-msgstr ""
+msgstr "Vevői rendeléshez foglalások"
#: order/models.py:1957 order/models.py:1959
msgid "Stock item has not been assigned"
@@ -5872,7 +5869,7 @@ msgstr "Visszavétel állapota"
#: order/models.py:2355
msgid "Return Order Line Item"
-msgstr ""
+msgstr "Visszavétel sortétel"
#: order/models.py:2369
msgid "Only serialized items can be assigned to a Return Order"
@@ -5905,7 +5902,7 @@ msgstr "Sortétel visszaküldésének vagy javításának költsége"
#: order/models.py:2421
msgid "Return Order Extra Line"
-msgstr ""
+msgstr "Visszavétel extra tétel"
#: order/serializers.py:87
msgid "Completed Lines"
@@ -5957,7 +5954,7 @@ msgstr "Belső cikkszám"
#: order/serializers.py:569
msgid "Internal Part Name"
-msgstr ""
+msgstr "Belső cikkszám"
#: order/serializers.py:585
msgid "Supplier part must be specified"
@@ -5983,7 +5980,7 @@ msgstr "Sortétel"
msgid "Line item does not match purchase order"
msgstr "Sortétel nem egyezik a beszerzési megrendeléssel"
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr "Válassz cél helyet a beérkezett tételeknek"
@@ -5998,11 +5995,11 @@ msgstr "Írd be a sorozatszámokat a beérkezett tételekhez"
#: order/serializers.py:692
msgid "Override packaging information for incoming stock items"
-msgstr ""
+msgstr "Bejövő készlettételek csomagolási információjának felülbírálata"
#: order/serializers.py:700
msgid "Additional note for incoming stock items"
-msgstr ""
+msgstr "Kiegészítő megjegyzés beérkező készlettételekhez"
#: order/serializers.py:707 templates/js/translated/barcode.js:52
msgid "Barcode"
@@ -6020,7 +6017,7 @@ msgstr "Ez a vonalkód már használva van"
msgid "An integer quantity must be provided for trackable parts"
msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett alkatrészeknél"
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr "Sortételt meg kell adni"
@@ -6052,39 +6049,39 @@ msgstr "Mennyiség pozitív kell legyen"
msgid "Enter serial numbers to allocate"
msgstr "Írd be a sorozatszámokat a kiosztáshoz"
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr "Szállítmány kiszállítva"
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr "Szállítmány nincs hozzárendelve ehhez a rendeléshez"
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr "Nincs találat a következő sorozatszámokra"
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
-msgstr "A következő sorozatszámok már ki lettek osztva"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
+msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr "Visszavétel sortétel"
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr "Sortétel nem egyezik a visszavétellel"
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr "A sortétel már beérkezett"
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr "Csak folyamatban lévő megrendelés tételeit lehet bevételezni"
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr "Sortétel pénzneme"
@@ -6168,7 +6165,7 @@ msgstr "Rendelés másolása"
#: order/templates/order/return_order_base.html:78
#: order/templates/order/sales_order_base.html:77
msgid "Hold order"
-msgstr ""
+msgstr "Rendelés Felfüggesztése"
#: order/templates/order/order_base.html:78
#: order/templates/order/return_order_base.html:81
@@ -6445,7 +6442,7 @@ msgstr "Tételek kiszállítása"
#: order/templates/order/sales_order_base.html:95
#: order/templates/order/sales_order_base.html:96
msgid "Mark As Shipped"
-msgstr ""
+msgstr "Kiszállítottnak Jelölve"
#: order/templates/order/sales_order_base.html:99
#: templates/js/translated/sales_order.js:536
@@ -6511,7 +6508,7 @@ 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:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6538,7 +6535,7 @@ msgstr "Alkatrész ábra"
msgid "Category ID"
msgstr "Kategória ID"
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr "Kategória neve"
@@ -6563,18 +6560,18 @@ msgstr "Minimális készlet"
msgid "Used In"
msgstr "Felhasználva ebben"
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr "Gyártásban"
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr "Minimum költség"
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr "Maximum költség"
@@ -6593,7 +6590,7 @@ msgid "Category Path"
msgstr "Kategória elérési út"
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6618,15 +6615,15 @@ msgstr "Szülő IPN"
#: part/admin.py:405
msgid "Part Revision"
-msgstr ""
+msgstr "Alkatrész változatok"
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Minimum ár"
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6654,7 +6651,7 @@ msgstr "Felső szint"
#: part/api.py:143
msgid "Filter by top-level categories"
-msgstr ""
+msgstr "Csúcs készlethelyre szűrés"
#: part/api.py:156 stock/api.py:343
msgid "Cascade"
@@ -6710,18 +6707,18 @@ msgstr "Ennek az opciónak ki kll lennie választva"
#: part/api.py:913
msgid "Is Revision"
-msgstr ""
+msgstr "Változat"
#: part/api.py:923
msgid "Has Revisions"
-msgstr ""
+msgstr "Vannak Változatok"
#: part/api.py:1114
msgid "BOM Valid"
-msgstr ""
+msgstr "Alkatrészjegyzék ellenőrizve"
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6731,11 +6728,11 @@ msgstr "Kategória"
#: part/api.py:1754
msgid "Assembly part is testable"
-msgstr ""
+msgstr "Összeállított Alkatrész ellenőrizhető"
#: part/api.py:1763
msgid "Component part is testable"
-msgstr ""
+msgstr "Összetevő alkatrész ellenőrizhető"
#: part/api.py:1814
msgid "Uses"
@@ -6747,7 +6744,7 @@ msgstr "Használ"
msgid "Default Location"
msgstr "Alapértelmezett hely"
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Teljes készlet"
@@ -6756,7 +6753,7 @@ msgstr "Teljes készlet"
msgid "Input quantity for price calculation"
msgstr "Add meg a mennyiséget az árszámításhoz"
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Alkatrész kategória"
@@ -6806,15 +6803,15 @@ msgstr "Nem lehet az alkatrészkategóriát szerkezeti kategóriává tenni, mer
#: part/models.py:514
msgid "Cannot delete this part as it is locked"
-msgstr ""
+msgstr "Lezárt alkatrész nem törölhető"
#: part/models.py:517
msgid "Cannot delete this part as it is still active"
-msgstr ""
+msgstr "Aktív alkatrész nem törölhető"
#: part/models.py:522
msgid "Cannot delete this part as it is used in an assembly"
-msgstr ""
+msgstr "Összeállításban felhasznált alkatrész nem törölhető"
#: part/models.py:560
msgid "Invalid choice for parent part"
@@ -6837,27 +6834,27 @@ msgstr "Az IPN belső cikkszámnak illeszkednie kell a {pattern} regex mintára"
#: part/models.py:698
msgid "Part cannot be a revision of itself"
-msgstr ""
+msgstr "Alkatrész nem lehes saját magának verziója"
#: part/models.py:705
msgid "Cannot make a revision of a part which is already a revision"
-msgstr ""
+msgstr "Nem lehet olyan alkatrészből új verziót csinálni ami már eleve egy verzió"
#: part/models.py:712
msgid "Revision code must be specified"
-msgstr ""
+msgstr "Verzió kódot meg kell adni"
#: part/models.py:719
msgid "Revisions are only allowed for assembly parts"
-msgstr ""
+msgstr "Verziók csak összeállított alkatrészeknél engedélyezettek"
#: part/models.py:726
msgid "Cannot make a revision of a template part"
-msgstr ""
+msgstr "Nem lehet sablon alkatrészből új verziót csinálni"
#: part/models.py:732
msgid "Parent part must point to the same template"
-msgstr ""
+msgstr "A szülő alkatrésznek azonos sablonra kell mutatnia"
#: part/models.py:826
msgid "Stock item with this serial number already exists"
@@ -6869,7 +6866,7 @@ msgstr "Azonos IPN nem engedélyezett az alkatrészekre, már létezik ilyen"
#: part/models.py:939
msgid "Duplicate part revision already exists."
-msgstr ""
+msgstr "Adott alkatrész verzióból már létezik egy."
#: part/models.py:948
msgid "Part with this Name, IPN and Revision already exists."
@@ -6879,7 +6876,7 @@ msgstr "Ilyen nevű, IPN-ű és reviziójú alkatrész már létezik."
msgid "Parts cannot be assigned to structural part categories!"
msgstr "Szerkezeti kategóriákhoz nem lehet alkatrészeket rendelni!"
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr "Alkatrész neve"
@@ -6907,17 +6904,17 @@ msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredmén
msgid "Part category"
msgstr "Alkatrész kategória"
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
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:1062
msgid "Is this part a revision of another part?"
-msgstr ""
+msgstr "Ez egy másik alkatrész egy verziója?"
#: part/models.py:1063 part/templates/part/part_base.html:284
msgid "Revision Of"
-msgstr ""
+msgstr "Ennek a verziója"
#: part/models.py:1087
msgid "Where is this item normally stored?"
@@ -6961,7 +6958,7 @@ msgstr "Kell-e külön követni az egyes példányait ennek az alkatrésznek?"
#: part/models.py:1185
msgid "Can this part have test results recorded against it?"
-msgstr ""
+msgstr "Lehet ehhez az alkatrészhez több ellenőrzési eredményt rögzíteni?"
#: part/models.py:1191
msgid "Can this part be purchased from external suppliers?"
@@ -6978,11 +6975,11 @@ msgstr "Aktív-e ez az alkatrész?"
#: part/models.py:1206 templates/js/translated/part.js:821
#: templates/js/translated/table_filters.js:724
msgid "Locked"
-msgstr ""
+msgstr "Lezárt"
#: part/models.py:1207
msgid "Locked parts cannot be edited"
-msgstr ""
+msgstr "Lezárt alkatrészt nem lehet szerkeszteni"
#: part/models.py:1213
msgid "Is this a virtual part, such as a software product or license?"
@@ -7013,164 +7010,164 @@ msgid "Owner responsible for this part"
msgstr "Alkatrész felelőse"
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr "Utolsó leltár"
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr "Több értékesítése"
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr "Árszámítások gyorstárazásához használt pénznem"
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr "Minimum alkatrészjegyzék költség"
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr "Összetevők minimum költsége"
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr "Maximum alkatrészjegyzék költség"
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr "Összetevők maximum költsége"
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr "Minimum beszerzési ár"
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr "Eddigi minimum beszerzési költség"
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr "Maximum beszerzési ár"
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr "Eddigi maximum beszerzési költség"
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr "Minimum belső ár"
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr "Minimum költség a belső ársávok alapján"
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr "Maximum belső ár"
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr "Maximum költség a belső ársávok alapján"
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr "Minimum beszállítói ár"
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr "Minimum alkatrész ár a beszállítóktól"
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr "Maximum beszállítói ár"
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr "Maximum alkatrész ár a beszállítóktól"
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr "Minimum alkatrészváltozat ár"
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr "Alkatrészváltozatok számolt minimum költsége"
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr "Maximum alkatrészváltozat ár"
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr "Alkatrészváltozatok számolt maximum költsége"
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr "Minimum költség felülbírálása"
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr "Maximum költség felülbírálása"
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr "Számított általános minimum költség"
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr "Számított általános maximum költség"
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr "Minimum eladási ár"
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr "Minimum eladási ár az ársávok alapján"
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr "Maximum eladási ár"
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr "Maximum eladási ár az ársávok alapján"
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr "Minimum eladási költség"
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr "Eddigi minimum eladási ár"
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr "Maximum eladási költség"
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr "Eddigi maximum eladási ár"
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr "Leltározható alkatrész"
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr "Tételszám"
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr "Egyedi készlet tételek száma a leltárkor"
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr "Teljes készlet a leltárkor"
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7182,369 +7179,369 @@ msgstr "Teljes készlet a leltárkor"
msgid "Date"
msgstr "Dátum"
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr "Leltározva ekkor"
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr "További megjegyzések"
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr "Leltározta"
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr "Minimum készlet érték"
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr "Becsült minimum raktárkészlet érték"
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr "Maximum készlet érték"
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr "Becsült maximum raktárkészlet érték"
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr "Riport"
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr "Leltár riport fájl (generált)"
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr "Alkatrész szám"
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr "Leltározott alkatrészek száma"
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr "Felhasználó aki a leltár riportot kérte"
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
-msgstr ""
+msgstr "Alkatrész értékesítési ársáv"
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
-msgstr ""
+msgstr "Alkatrész Teszt Sablon"
-#: part/models.py:3555
+#: part/models.py:3542
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:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr "A lehetőségek egyediek kell legyenek"
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
-msgstr ""
+msgstr "Teszt sablont csak ellenőrizhetőre beállított alkatrészhez lehet csinálni"
-#: part/models.py:3598
+#: part/models.py:3585
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:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr "Teszt név"
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr "Add meg a teszt nevét"
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr "Teszt azonosító"
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr "Egyszerűsített Teszt azonosító"
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr "Teszt leírása"
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr "Adj hozzá egy leírást ehhez a teszthez"
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr "Engedélyezve"
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr "Teszt engedélyezve?"
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr "Kötelező"
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr "Szükséges-e hogy ez a teszt sikeres legyen?"
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr "Kötelező érték"
-#: part/models.py:3647
+#: part/models.py:3634
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:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr "Kötelező melléklet"
-#: part/models.py:3654
+#: part/models.py:3641
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:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr "Lehetőségek"
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
-msgstr ""
+msgstr "Választható lehetőségek ehhez a Teszthez (vesszővel elválasztva)"
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
-msgstr ""
+msgstr "Alkatrész Paraméter Sablon"
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr "Jelölőnégyzet paraméternek nem lehet mértékegysége"
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr "Jelölőnégyzet paraméternek nem lehetnek választási lehetőségei"
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr "A paraméter sablon nevének egyedinek kell lennie"
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr "Paraméter neve"
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr "Paraméter mértékegysége"
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr "Paraméter leírása"
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr "Jelölőnégyzet"
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr "Ez a paraméter egy jelölőnégyzet?"
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr "Választható lehetőségek (vesszővel elválasztva)"
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
-msgstr ""
+msgstr "Alkatrész Paraméter"
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
-msgstr ""
+msgstr "Lezárt alkatrész Paramétere nem szerkeszthető"
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr "Hibás választás a paraméterre"
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr "Szülő alkatrész"
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Paraméter sablon"
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr "Paraméter értéke"
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
-msgstr ""
+msgstr "Alkatrészcsoport Paraméter Sablon"
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Alapértelmezett érték"
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr "Alapértelmezett paraméter érték"
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr "Alkatrész ID vagy alkatrész név"
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr "Egyedi alkatrész ID értéke"
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr "Alkatrész IPN érték"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr "Szint"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr "Alkatrészjegyzék szint"
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
-msgstr ""
+msgstr "Alkatrészjegyzék nem szerkeszthető mert az összeállítás le van zárva"
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
-msgstr ""
+msgstr "Alkatrészjegyzék nem szerkeszthető mert az összeállítás változat le van zárva"
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr "Szülő alkatrész kiválasztása"
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr "Al alkatrész"
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt"
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez"
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr "Ez az alkatrészjegyzék tétel opcionális"
-#: part/models.py:4279
+#: part/models.py:4266
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:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Többlet"
-#: part/models.py:4287
+#: part/models.py:4274
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:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr "Alkatrészjegyzék tétel azonosító"
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr "Alkatrészjegyzék tétel megjegyzései"
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr "Ellenőrző összeg"
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr "Alkatrészjegyzék sor ellenőrző összeg"
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr "Jóváhagyva"
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr "Ez a BOM tétel jóvá lett hagyva"
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr "Öröklődött"
-#: part/models.py:4321
+#: part/models.py:4308
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:4327
+#: part/models.py:4314
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:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
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:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr "Al alkatrészt kötelező megadni"
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr "Alkatrészjegyzék tétel helyettesítő"
-#: part/models.py:4582
+#: part/models.py:4575
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:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr "Szülő alkatrészjegyzék tétel"
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr "Helyettesítő alkatrész"
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr "1.rész"
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr "2.rész"
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr "Válassz kapcsolódó alkatrészt"
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr "Alkatrész kapcsolat nem hozható létre önmagával"
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr "Már létezik duplikált alkatrész kapcsolat"
#: part/serializers.py:124
msgid "Parent Category"
-msgstr ""
+msgstr "Szülő Kategória"
#: part/serializers.py:125 templates/js/translated/part.js:312
msgid "Parent part category"
@@ -7572,326 +7569,326 @@ msgstr "Beszerzési pénzneme ennek a készlet tételnek"
msgid "Number of parts using this template"
msgstr "Ennyi alkatrész használja ezt a sablont"
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr "Nincs kiválasztva alkatrész"
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr "Válassz kategóriát"
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr "Eredeti alkatrész"
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr "Válassz eredeti alkatrészt a másoláshoz"
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr "Kép másolása"
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr "Kép másolása az eredeti alkatrészről"
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr "Alkatrészjegyzék másolása"
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr "Alkatrészjegyzék másolása az eredeti alkatrészről"
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr "Paraméterek másolása"
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr "Paraméterek másolása az eredeti alkatrészről"
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr "Megjegyzések másolása"
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr "Megjegyzések másolása az eredeti alkatrészről"
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr "Kezdeti készlet mennyiség"
-#: part/serializers.py:527
+#: part/serializers.py:525
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:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr "Kezdeti készlet hely"
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr "Add meg a kezdeti készlet helyét"
-#: part/serializers.py:552
+#: part/serializers.py:550
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:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Válassz gyártót (hagyd üresen ha nem kell létrehozni)"
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr "Gyártói cikkszám"
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr "A kiválasztott cég nem érvényes beszállító"
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr "A kiválasztott cég nem érvényes gyártó"
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr "Van már ilyen gyártói alkatrész"
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr "Van már ilyen beszállítói alkatrész"
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
-msgstr ""
+msgstr "Verziók"
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr "Nem lefoglalt készlet"
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr "Variánsok Raktárkészlet"
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr "Alkatrész másolása"
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr "Kezdeti adatok másolása egy másik alkatrészről"
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr "Kezdeti készlet"
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr "Kezdeti készlet mennyiség létrehozása"
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr "Beszállító információ"
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr "Kezdeti beszállító adatok hozzáadása"
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr "Kategória paraméterek másolása"
-#: part/serializers.py:986
+#: part/serializers.py:984
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:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr "Meglévő kép"
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr "A meglévő alkatrész képfájl neve"
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr "A képfájl nem létezik"
-#: part/serializers.py:1215
+#: part/serializers.py:1213
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:1225
+#: part/serializers.py:1223
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:1235
+#: part/serializers.py:1233
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:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr "Külső készlet nélkül"
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr "Külső helyeken lévő készlet nélkül"
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr "Riport létrehozása"
-#: part/serializers.py:1248
+#: part/serializers.py:1246
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:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr "Alaktrészek frissítése"
-#: part/serializers.py:1254
+#: part/serializers.py:1252
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:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr "Leltár funkció nincs engedélyezve"
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr "Számított minimum ár felülbírálása"
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr "Minimum ár pénzneme"
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr "Számított maximum ár felülbírálása"
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr "Maximum ár pénzneme"
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr "Frissítés"
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr "Alkatrész árak frissítése"
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, 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:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr "A Minimum ár nem lehet nagyobb mint a Maximum ár"
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr "A Maximum ár nem lehet kisebb mint a Minimum ár"
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
-msgstr ""
+msgstr "Szülő összeállítás kiválasztása"
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
-msgstr ""
+msgstr "Összetevő neve"
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
-msgstr ""
+msgstr "Összetevő Cikkszám"
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
-msgstr ""
+msgstr "Összetevő Leírás"
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
-msgstr ""
+msgstr "Összetevő alkatrész kijelölése"
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr "Gyártható"
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk"
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr "Létező adat törlése"
-#: part/serializers.py:1867
+#: part/serializers.py:1865
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:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr "Örököltekkel együtt"
-#: part/serializers.py:1873
+#: part/serializers.py:1871
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:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr "Hibás sorok kihagyása"
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr "Engedély a hibás sorok kihagyására"
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr "Helyettesítő alkatrészek másolása"
-#: part/serializers.py:1885
+#: part/serializers.py:1883
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:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr "Meglévő alkatrészjegyzék törlése"
-#: part/serializers.py:1923
+#: part/serializers.py:1921
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:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr "Nincs megadva alkatrész oszlop"
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr "Több egyező alkatrész is található"
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr "Nincs egyező alkatrész"
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr "Az alkatrész nem lett összetevőként jelölve"
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr "Mennyiség nincs megadva"
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr "Érvénytelen mennyiség"
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr "Legalább egy alkatrészjegyzék tétel szükséges"
@@ -8063,7 +8060,7 @@ msgstr "Teszt sablon hozzáadása"
#: part/templates/part/detail.html:106
msgid "Part Test Statistics"
-msgstr ""
+msgstr "Alkatrész Ellenőrzési Statisztika"
#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49
msgid "Sales Order Allocations"
@@ -8217,7 +8214,7 @@ msgid "Subscribe to notifications for this part"
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/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr "Címke nyomtatása"
@@ -8227,7 +8224,7 @@ msgid "Show pricing information"
msgstr "Árinformációk megjelenítése"
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr "Készlet műveletek"
@@ -8295,15 +8292,15 @@ msgstr "Alkatrész részletei"
#: part/templates/part/part_base.html:217
msgid "Required for Orders"
-msgstr ""
+msgstr "Rendeléshez szükséges"
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr "Gyártáshoz lefoglalva"
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr "Vevő rendeléshez lefoglalva"
@@ -8323,7 +8320,7 @@ msgid "Latest Serial Number"
msgstr "Legutolsó sorozatszám"
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr "Sorozatszámra keresés"
@@ -8450,7 +8447,7 @@ msgid "Edit"
msgstr "Szerkesztés"
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8605,7 +8602,7 @@ msgstr "Az alkatrész képe nem található"
msgid "Part Pricing"
msgstr "Alkatrész árak"
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr "Plugin nem törölhető mivel még aktív"
@@ -8628,11 +8625,11 @@ msgstr "Egyezés vonalkódra"
#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45
msgid "Model is not supported"
-msgstr ""
+msgstr "Model nem támogatott"
#: plugin/base/barcodes/api.py:168
msgid "Model instance not found"
-msgstr ""
+msgstr "Model példány hiányzik"
#: plugin/base/barcodes/api.py:197
#: templates/js/translated/purchase_order.js:1468
@@ -8728,11 +8725,11 @@ msgstr "Beolvasott vonalkód"
#: plugin/base/barcodes/serializers.py:30
msgid "Model name to generate barcode for"
-msgstr ""
+msgstr "Vonalkód generáláshoz kiválaszottt model neve"
#: plugin/base/barcodes/serializers.py:35
msgid "Primary key of model object to generate barcode for"
-msgstr ""
+msgstr "A vonalkódnyomtatáshoz kiválaszott model objektum azonosítója"
#: plugin/base/barcodes/serializers.py:105
msgid "Purchase Order to allocate items against"
@@ -8796,7 +8793,7 @@ msgstr "A címke HTML nyomtatása sikertelen"
#: plugin/base/label/mixins.py:149
msgid "No items provided to print"
-msgstr ""
+msgstr "Nincs elem a nyomtatáshoz"
#: plugin/builtin/barcodes/inventree_barcode.py:27
msgid "InvenTree Barcodes"
@@ -8819,27 +8816,27 @@ msgstr "InvenTree fejlesztők"
#: plugin/builtin/barcodes/inventree_barcode.py:34
msgid "Internal Barcode Format"
-msgstr ""
+msgstr "Belső Vonalkód Formátum"
#: plugin/builtin/barcodes/inventree_barcode.py:35
msgid "Select an internal barcode format"
-msgstr ""
+msgstr "Belső vonalkód formátum kiválasztása"
#: plugin/builtin/barcodes/inventree_barcode.py:37
msgid "JSON barcodes (human readable)"
-msgstr ""
+msgstr "JSON vonalkód (olvasható)"
#: plugin/builtin/barcodes/inventree_barcode.py:38
msgid "Short barcodes (space optimized)"
-msgstr ""
+msgstr "Rövid vonalkód (tömörebb)"
#: plugin/builtin/barcodes/inventree_barcode.py:43
msgid "Short Barcode Prefix"
-msgstr ""
+msgstr "Rövid Vonalkód Előtag"
#: 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 ""
+msgstr "A rövid vonalkódok előtagjának beállítása hasznos lehet, ha több InvenTree példányt is használnak egy környezetben"
#: plugin/builtin/integration/core_notifications.py:34
msgid "InvenTree Notifications"
@@ -8941,7 +8938,7 @@ msgstr "Szegély"
msgid "Print a border around each label"
msgstr "Az egyes címkék körüli margó"
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr "Fekvő"
@@ -9013,44 +9010,44 @@ msgstr "TME vonalkódok támogatása"
msgid "The Supplier which acts as 'TME'"
msgstr "A 'TME' beszállító"
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr "Csak a személyzeti felhasználók adminisztrálhatják a pluginokat"
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr "Plugin telepítés letiltva"
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr "Plugin telepítése sikeres"
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Plugin telepítve ide: {path}"
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr "Ez a plugin nem található a tárolóban"
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr "A plugin nem egy csomagolt plugin"
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr "Plugin csomag neve nem található"
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr "Plugin eltávolítás letiltva"
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "Plugin nem eltávolítható mivel még aktív"
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr "Plugin eltávolítása sikeres"
@@ -9099,7 +9096,7 @@ msgstr "Beépített plugin"
msgid "Package Plugin"
msgstr "Csomag plugin"
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9168,6 +9165,38 @@ msgstr "Minta árfolyamváltó plugin"
msgid "InvenTree Contributors"
msgstr "InvenTree fejlesztők"
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr "Forrás URL"
@@ -9246,12 +9275,36 @@ msgstr "Konfiguráció törlése"
msgid "Delete the plugin configuration from the database"
msgstr "Plugin konfiguráció törlése az adatbázisból"
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr "Nincs érvényes objektum megadva a sablonhoz"
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9260,29 +9313,33 @@ msgstr "Tételek"
#: report/api.py:180
msgid "Plugin not found"
-msgstr ""
+msgstr "Plugin nem található"
#: report/api.py:182
msgid "Plugin is not active"
-msgstr ""
+msgstr "Plugin nem aktív"
#: report/api.py:184
msgid "Plugin does not support label printing"
-msgstr ""
+msgstr "Plugin nem támogatja a címkenyomtatást"
#: report/api.py:233
msgid "Invalid label dimensions"
-msgstr ""
+msgstr "Érvénytelen címke méretek"
#: report/api.py:248 report/api.py:329
msgid "No valid items provided to template"
-msgstr ""
+msgstr "Nincs érvényes tétel megadva a sablonhoz"
#: report/api.py:283
msgid "Error printing label"
msgstr "Címkenyomtatási hiba"
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr "A '{template}' sablon fájl hiányzik vagy nem érhető el"
@@ -9305,7 +9362,7 @@ msgstr "„Letter” méret"
#: report/models.py:118
msgid "Template file with this name already exists"
-msgstr ""
+msgstr "Ilyen nevű Sablon fájl már létezik"
#: report/models.py:150
msgid "Template name"
@@ -9313,143 +9370,151 @@ msgstr "Sablon neve"
#: report/models.py:156
msgid "Template description"
-msgstr ""
+msgstr "Sablon leírása"
#: report/models.py:162
msgid "Revision number (auto-increments)"
+msgstr "Verziószám (automatikusan nő)"
+
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:202
+#: report/models.py:210
msgid "Filename Pattern"
msgstr "Fájlnév minta"
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
-msgstr ""
+msgstr "Minta a fájlnevek előállításához"
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
-msgstr ""
+msgstr "Sablon engedélyezve"
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
-msgstr ""
+msgstr "A sablon által célzott model típus"
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr "Szűrők"
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
-msgstr ""
+msgstr "Sablon lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)"
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
-msgstr ""
+msgstr "Sablon file"
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr "Lapméret a PDF riportokhoz"
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr "Jelentés fekvő nézetben"
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr "Szélesség [mm]"
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr "Címke szélessége, mm-ben"
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr "Magasság [mm]"
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr "Címke magassága, mm-ben"
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
-msgstr ""
+msgstr "Feldolgozandó elemek száma"
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
-msgstr ""
+msgstr "Jelentés készítés befejezve"
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr "Haladás"
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
-msgstr ""
+msgstr "Jelentés készítés állapota"
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
-msgstr ""
+msgstr "Jelentéssablon"
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr "Kimeneti Fájl"
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
-msgstr ""
+msgstr "Generált kimeneti állomány"
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
-msgstr ""
+msgstr "Címke előállító plugin"
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
-msgstr ""
+msgstr "Címke sablon"
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr "Részlet"
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr "Riport részlet fájl"
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr "Részlet fájl leírása"
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr "Eszköz"
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr "Riport asset fájl"
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr "Asset fájl leírása"
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
-msgstr ""
+msgstr "Riport sablon kiválasztása"
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
-msgstr ""
+msgstr "A jelentésben levő tételek azonosítója"
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr "Címke sablon választás"
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
-msgstr ""
+msgstr "Nyomtató plugin"
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
-msgstr ""
+msgstr "Címkenyomtató plugin kiválasztása"
#: report/templates/label/part_label.html:31
#: report/templates/label/stockitem_qr.html:21
@@ -9518,7 +9583,7 @@ msgstr "Teszt eredmények"
msgid "Test"
msgstr "Teszt"
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr "Eredmény"
@@ -9588,7 +9653,7 @@ msgstr "Beszállítói cikkszám"
#: stock/admin.py:185
msgid "Supplier Part SKU"
-msgstr ""
+msgstr "Beszállítói cikkszám"
#: stock/admin.py:190
msgid "Supplier ID"
@@ -9599,7 +9664,7 @@ msgid "Customer ID"
msgstr "Vevő ID"
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr "Beépítve ebbe"
@@ -9624,7 +9689,7 @@ msgid "Delete on Deplete"
msgstr "Törlés ha kimerül"
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr "Lejárati dátum"
@@ -9635,7 +9700,7 @@ msgstr "Hely mélységre szűrés"
#: stock/api.py:330
msgid "Filter by top-level locations"
-msgstr ""
+msgstr "Csúcs készlethelyre szűrés"
#: stock/api.py:345
msgid "Include sub-locations in filtered results"
@@ -9666,7 +9731,7 @@ msgid "Expiry date after"
msgstr "Lejárat után"
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr "Állott"
@@ -9716,7 +9781,7 @@ msgid "Stock Locations"
msgstr "Készlethelyek"
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr "Tulajdonos"
@@ -9827,7 +9892,7 @@ msgstr "Forrás gyártás"
msgid "Build for this stock item"
msgstr "Gyártás ehhez a készlet tételhez"
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr "Felhasználva ebben"
@@ -9892,7 +9957,7 @@ msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával"
msgid "Serial numbers already exist"
msgstr "A sorozatszámok már léteznek"
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr "Ez a Teszt sablon nem létezik"
@@ -9940,109 +10005,109 @@ msgstr "Készlet tételek állapotainak egyeznie kell"
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:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
-msgstr ""
+msgstr "Készlettörténet"
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr "Bejegyzés megjegyzései"
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
-msgstr ""
+msgstr "Készlet Tétel Ellenőrzés Eredménye"
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr "Ehhez a teszthez meg kell adni értéket"
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr "Ehhez a teszthez fel kell tölteni mellékletet"
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
-msgstr ""
+msgstr "A teszt eredménye érvénytelen"
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr "Teszt eredménye"
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr "Teszt kimeneti értéke"
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr "Teszt eredmény melléklet"
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr "Tesztek megjegyzései"
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr "Teszt állomás"
-#: stock/models.py:2566
+#: stock/models.py:2561
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:2572
+#: stock/models.py:2567
msgid "Started"
msgstr "Elkezdődött"
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr "A teszt indításának időpontja"
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr "Befejezve"
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr "A teszt befejezésének időpontja"
#: stock/serializers.py:77
msgid "Generated batch code"
-msgstr ""
+msgstr "Generált köteg kód"
#: stock/serializers.py:86
msgid "Select build order"
-msgstr ""
+msgstr "Gyártási rendelés kiválasztása"
#: stock/serializers.py:95
msgid "Select stock item to generate batch code for"
-msgstr ""
+msgstr "Készlettétel amihez a köteg kódot generáljuk"
#: stock/serializers.py:104
msgid "Select location to generate batch code for"
-msgstr ""
+msgstr "Készlethely amihez a köteg kódot generáljuk"
#: stock/serializers.py:113
msgid "Select part to generate batch code for"
-msgstr ""
+msgstr "Alkatrész amihez a köteg kódot generáljuk"
#: stock/serializers.py:122
msgid "Select purchase order"
-msgstr ""
+msgstr "Beszerzési rendelés kiválasztása"
#: stock/serializers.py:129
msgid "Enter quantity for batch code"
-msgstr ""
+msgstr "Adja meg a mennyiséget a köteg kódhoz"
#: stock/serializers.py:152
msgid "Generated serial number"
-msgstr ""
+msgstr "Generált sorozatszám"
#: stock/serializers.py:161
msgid "Select part to generate serial number for"
-msgstr ""
+msgstr "Válassza ki az alkatrészt amihez sorozatszámot akar generálni"
#: stock/serializers.py:169
msgid "Quantity of serial numbers to generate"
-msgstr ""
+msgstr "Hány sorozatszámot generáljunk"
#: stock/serializers.py:234
msgid "Test template for this result"
@@ -10060,19 +10125,19 @@ msgstr "A tesztet nem lehet a kezdésnél hamarabb befejezni"
msgid "Serial number is too large"
msgstr "Szériaszám túl nagy"
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr "Szülő tétel"
#: stock/serializers.py:460
msgid "Parent stock item"
-msgstr ""
+msgstr "Szülő készlet tétel"
#: stock/serializers.py:479
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "Csomagolási mennyiség használata: a megadott mennyiség ennyi csomag"
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr "Lejárt"
@@ -10083,7 +10148,7 @@ msgstr "Gyermek tételek"
#: stock/serializers.py:613
msgid "Tracking Items"
-msgstr ""
+msgstr "Nyilvántartott tételek"
#: stock/serializers.py:619
msgid "Purchase price of this stock item, per unit or pack"
@@ -10091,11 +10156,11 @@ msgstr "Készlet tétel beszerzési ára, per darab vagy csomag"
#: stock/serializers.py:638
msgid "Minimum Pricing"
-msgstr ""
+msgstr "Minimum árazás"
#: stock/serializers.py:644
msgid "Maximum Pricing"
-msgstr ""
+msgstr "Maximum árazás"
#: stock/serializers.py:668
msgid "Enter number of stock items to serialize"
@@ -10161,7 +10226,7 @@ msgstr "Cél hely a kiszedett tételeknek"
#: stock/serializers.py:910
msgid "Unsupported statistic type: "
-msgstr ""
+msgstr "Nem támogatott statisztikai típus: "
#: stock/serializers.py:924
msgid "Select part to convert stock item into"
@@ -10411,7 +10476,7 @@ msgstr "Ez a készlet tétel nem tartalmaz egy altételt sem"
msgid "Test Data"
msgstr "Teszt adatok"
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr "Teszt riport"
@@ -10451,200 +10516,204 @@ msgstr "Készlet tétel keresése"
msgid "Scan to Location"
msgstr "Áthelyezés kódolvasással"
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr "Nyomtatási műveletek"
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr "Jelentés nyomtatása"
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr "Készlet módosítási műveletek"
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: 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
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr "Készlet növelése"
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr "Készlet csökkentése"
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr "Sorozatszámok előállítása"
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: 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
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr "Vevőhöz rendelése"
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr "Visszavétel készletre"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr "Készlet tétel kiszedése"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr "Kiszedés"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr "Készlet tétel beépítése"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr "Beépítés"
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr "Változattá alakítás"
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr "Készlet tétel másolása"
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr "Készlet tétel szerkesztése"
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr "Készlet tétel törlése"
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Gyártás"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr "Nincs beállítva gyártó"
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr "Úgytűnik nem vagy ennek a tételnek a tulajdonosa. Ezt így nem tudod módosítani."
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr "Csak olvasható"
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr "Ez a készlet tétel nem elérhető"
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr "Ez a készlet tétel éppen gyártás alatt van és itt még nem szerkeszthető."
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr "A tétel szerkesztése most csak a gyártási nézetből lehetséges."
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr "Foglalva ehhez a vevői rendeléshez"
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr "Foglalva ehhez a gyártási utasításhoz"
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr "Ez a készlet tétel egyedi követésre kötelezett. Egyedi sorozatszámmal rendelkezik így a mennyiség nem módosítható"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr "előző oldal"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr "Menj az előző sorozatszámhoz"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr "követkető oldal"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr "Menj a következő sorozatszámhoz"
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr "Nincs beállítva hely"
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr "Tesztek"
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr "Ez a készlet tétel nem felelt meg az összes szükséges teszten"
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr "Ez a készlet tétel lejárt %(item.expiry_date)s-n"
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Ez a készlet tétel lejár %(item.expiry_date)s-n"
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr "Még nem volt leltározva"
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr "készlet tétel"
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr "Készlet állapot szerkesztése"
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr "Készlet tétel QR kódja"
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr "Vonalkód hozzárendelése a készlet tételhez"
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr "Válassz a lenti alkatrész változatok közül"
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr "Figyelem"
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr "Ez a művelet nem vonható vissza könnyen"
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr "Készlet tétel konvertálása"
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr "Visszavétel készletre"
@@ -10710,7 +10779,7 @@ msgstr "Úgytűnik nem vagy ennek a készlethelynek a tulajdonosa. Ezt így nem
#: stock/templates/stock/location.html:173
msgid "Location Type"
-msgstr ""
+msgstr "Készlethely Típus"
#: stock/templates/stock/location.html:223
msgid "Create new stock location"
@@ -11311,7 +11380,7 @@ msgid "Delete Location Type"
msgstr "Készlethely típus törlése"
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr "Új készlethely típus"
@@ -11368,7 +11437,7 @@ msgstr "Vevő rendelés beállításai"
msgid "Stock Settings"
msgstr "Készlet beállítások"
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr "Készlethely típusok"
@@ -11827,7 +11896,7 @@ msgstr "Olvasd be a lenti QR kódot egy kiválaszott token generátorral (péld
#: templates/allauth_2fa/setup.html:20
msgid "Secret: "
-msgstr ""
+msgstr "Titok: "
#: templates/allauth_2fa/setup.html:24
msgid "Step 2"
@@ -11853,23 +11922,23 @@ msgstr "Melléklet hozzáadása"
msgid "Barcode Identifier"
msgstr "Vonalkód azonosító"
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr "Kiszolgáló újraindítása szükséges"
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr "Egy olyan konfigurációs opció megváltozott ami a kiszolgáló újraindítását igényli"
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr "Vedd fel a kapcsolatot a rendszergazdával további információkért"
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr "Függőben levő adatbázis migrációk"
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr "Törődést igénylő függőben levő adatbázis migrációk találhatók"
@@ -12513,35 +12582,35 @@ msgstr "Gyártási kimenetek törlése"
#: templates/js/translated/build.js:962
msgid "Delete allocations"
-msgstr ""
+msgstr "Hozzárendelések törlése"
#: templates/js/translated/build.js:969
msgid "Delete Stock Allocations"
-msgstr ""
+msgstr "Hozzárendelt Készletek Törlése"
#: templates/js/translated/build.js:992
msgid "No allocated stock"
-msgstr ""
+msgstr "Nincsen hozzárendelt készlet"
#: templates/js/translated/build.js:1048
msgid "Stock item"
-msgstr ""
+msgstr "Készlet tétel"
#: templates/js/translated/build.js:1073
msgid "Edit build allocation"
-msgstr ""
+msgstr "Gyártási készlet foglalások szerkesztése"
#: templates/js/translated/build.js:1074
msgid "Delete build allocation"
-msgstr ""
+msgstr "Gyártási készlet foglalások törlése"
#: templates/js/translated/build.js:1092
msgid "Edit Build Allocation"
-msgstr ""
+msgstr "Gyártási Készlet Foglalások Szerkesztése"
#: templates/js/translated/build.js:1105
msgid "Delete Build Allocation"
-msgstr ""
+msgstr "Gyártási Készlet Foglalások Törlése"
#: templates/js/translated/build.js:1136
msgid "No build order allocations found"
@@ -12710,7 +12779,7 @@ msgstr "Követésre kötelezett alkatrész"
#: templates/js/translated/build.js:2723
msgid "Gets Inherited"
-msgstr ""
+msgstr "Öröklődik"
#: templates/js/translated/build.js:2733
msgid "Unit Quantity"
@@ -13219,11 +13288,11 @@ msgstr "Az értesítések itt fognak megjelenni"
#: templates/js/translated/order.js:48
msgid "Hold Order"
-msgstr ""
+msgstr "Rendelés felfüggesztése"
#: templates/js/translated/order.js:53
msgid "Are you sure you wish to place this order on hold?"
-msgstr ""
+msgstr "Biztosan felfüggeszti ennek a rendelésnek a kivitelezését?"
#: templates/js/translated/order.js:114
msgid "Add Extra Line Item"
@@ -13568,11 +13637,11 @@ msgstr "találat"
#: templates/js/translated/part.js:2955
msgid "Edit test template"
-msgstr ""
+msgstr "Teszt sablon szerkesztése"
#: templates/js/translated/part.js:2956
msgid "Delete test template"
-msgstr ""
+msgstr "Teszt sablon törlése"
#: templates/js/translated/part.js:2960
msgid "This test is defined for a parent part"
@@ -13830,7 +13899,7 @@ msgstr "Érkező mennyiség"
#: templates/js/translated/purchase_order.js:1170
#: templates/js/translated/stock.js:1215
msgid "Specify packaging for incoming stock items"
-msgstr ""
+msgstr "Bejövő készlet tételek csomagolásának meghatározása"
#: templates/js/translated/purchase_order.js:1223
msgid "Stock Status"
@@ -13854,7 +13923,7 @@ msgstr "Batch kód hozzáadása"
#: templates/js/translated/purchase_order.js:1259
msgid "Specify packaging"
-msgstr ""
+msgstr "Csomagolás meghatározása"
#: templates/js/translated/purchase_order.js:1270
msgid "Add serial numbers"
@@ -13862,7 +13931,7 @@ msgstr "Sorozatszám hozzáadása"
#: templates/js/translated/purchase_order.js:1281
msgid "Add note"
-msgstr ""
+msgstr "Jegyzet hozzáfűzése"
#: templates/js/translated/purchase_order.js:1338
msgid "Serials"
@@ -13947,17 +14016,13 @@ msgstr "Sortétel szerkesztése"
msgid "Delete line item"
msgstr "Sortétel törlése"
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
-msgstr ""
+msgstr "Jelentés nyomtatása sikeres"
#: templates/js/translated/report.js:73
msgid "Report printing failed"
-msgstr ""
+msgstr "Jelentés nyomtatása sikertelen"
#: templates/js/translated/return_order.js:60
#: templates/js/translated/sales_order.js:86
@@ -14052,15 +14117,15 @@ msgstr "Kihagyás"
#: templates/js/translated/sales_order.js:484
msgid "Ship Sales Order"
-msgstr ""
+msgstr "Vevői rendelés kiszállítása"
#: templates/js/translated/sales_order.js:500
msgid "Ship this order?"
-msgstr ""
+msgstr "Biztosan kiszállította a rendelést?"
#: templates/js/translated/sales_order.js:506
msgid "Order cannot be shipped as there are incomplete shipments"
-msgstr ""
+msgstr "A rendelés nem kiszállítható mert vannak még hiányos szállítások"
#: templates/js/translated/sales_order.js:513
msgid "This order has line items which have not been completed."
@@ -14068,7 +14133,7 @@ msgstr "Ez a rendelés olyan sortételeket tartalmaz amik még nem teljesítette
#: templates/js/translated/sales_order.js:514
msgid "Shipping this order means that the order and line items will no longer be editable."
-msgstr ""
+msgstr "A rendelés szállítása után a rendelés tételei nem lesznek szerkeszthetők."
#: templates/js/translated/sales_order.js:572
msgid "Issue this Sales Order?"
@@ -14417,11 +14482,11 @@ msgstr "Készlet mennyiség megadása"
#: templates/js/translated/stock.js:1168
msgid "Adjust batch code"
-msgstr ""
+msgstr "Köteg kód módosítása"
#: templates/js/translated/stock.js:1178
msgid "Adjust packaging"
-msgstr ""
+msgstr "Csomagolás módosítása"
#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383
msgid "Select Stock Items"
@@ -14710,11 +14775,11 @@ msgstr "Készlet állapot módosítása"
#: templates/js/translated/stock.js:3478
msgid "This week"
-msgstr ""
+msgstr "Aktuális hét"
#: templates/js/translated/stock.js:3486
msgid "This month"
-msgstr ""
+msgstr "Aktuális hónap"
#: templates/js/translated/table_filters.js:73
msgid "Has project code"
@@ -14729,7 +14794,7 @@ msgstr "Rendelés állapota"
#: templates/js/translated/table_filters.js:161
msgid "Testable Part"
-msgstr ""
+msgstr "Ellenőrizhető alkatrész"
#: templates/js/translated/table_filters.js:165
msgid "Trackable Part"
@@ -14912,11 +14977,11 @@ msgstr "Beépített tételekkel együtt"
#: templates/js/translated/table_filters.js:478
msgid "Interval start"
-msgstr ""
+msgstr "Intervallum eleje"
#: templates/js/translated/table_filters.js:482
msgid "Interval end"
-msgstr ""
+msgstr "Invervallum vége"
#: templates/js/translated/table_filters.js:536
msgid "Build status"
@@ -14932,7 +14997,7 @@ msgstr "Aktív alkatrészek megjelenítése"
#: templates/js/translated/table_filters.js:725
msgid "Show locked parts"
-msgstr ""
+msgstr "Lezárt alkatrészek megjelenítése"
#: templates/js/translated/table_filters.js:733
msgid "Available stock"
@@ -15242,11 +15307,11 @@ msgstr "Email beállítások hiányoznak"
#: templates/test_statistics_table.html:13
msgid "Passed"
-msgstr ""
+msgstr "Megfelelt"
#: templates/test_statistics_table.html:16
msgid "Failed"
-msgstr ""
+msgstr "Elbukott"
#: templates/yesnolabel.html:4
msgid "Yes"
diff --git a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po
index 0b15562adc40..b467d84c8722 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -150,7 +150,7 @@ msgstr "Nomor seri kosong"
#: InvenTree/helpers.py:522
msgid "Duplicate serial"
-msgstr ""
+msgstr "Gandakan Nomor Seri"
#: InvenTree/helpers.py:554 InvenTree/helpers.py:597
#, python-brace-format
@@ -181,7 +181,7 @@ msgstr "Hapus tag-tag HTML dari nilai ini"
#: InvenTree/helpers_model.py:130
msgid "Connection error"
-msgstr ""
+msgstr "Koneksi Galat"
#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142
msgid "Server responded with invalid status code"
@@ -213,7 +213,7 @@ msgstr "URL yang diberikan bukan file gambar yang valid"
#: InvenTree/locales.py:18
msgid "Arabic"
-msgstr ""
+msgstr "Bahasa Arab"
#: InvenTree/locales.py:19
msgid "Bulgarian"
@@ -364,7 +364,7 @@ msgstr ""
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr "Pilihan tidak valid"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Nama"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Terjadi Kesalahan Server"
msgid "An error has been logged by the server."
msgstr "Sebuah kesalahan telah dicatat oleh server."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Harus berupa angka yang valid"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -534,45 +534,45 @@ msgstr ""
#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33
msgid "Username"
-msgstr ""
+msgstr "Nama Pengguna"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
-msgstr ""
+msgstr "Nama Depan"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
-msgstr ""
+msgstr "Nama depan dari pengguna"
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
-msgstr ""
+msgstr "Nama Belakang"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
-msgstr ""
+msgstr "Nama belakang dari pengguna"
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
-msgstr ""
+msgstr "Alamat surel dari pengguna"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
-msgstr ""
+msgstr "Staf"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -583,91 +583,91 @@ msgstr ""
#: templates/js/translated/table_filters.js:719
#: templates/js/translated/table_filters.js:808 users/models.py:182
msgid "Active"
-msgstr ""
+msgstr "Aktif"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
-msgstr ""
+msgstr "Selamat Datang di InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Nilai tidak valid"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "File data"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Pilih file untuk diunggah"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Jenis file tidak didukung"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Ukuran file terlalu besar"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Tidak ditemukan kolom dalam file"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Tidak ditemukan barisan data dalam file"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Tidak ada barisan data tersedia"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Tidak ada kolom data tersedia"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Kolom yang diperlukan kurang: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Kolom duplikat: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "URL file gambar external"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "Unduhan gambar dari URL external tidak aktif"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr "Pesanan harus dibatalkan sebelum dapat dihapus"
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "Pesanan harus dibatalkan sebelum dapat dihapus"
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -814,9 +814,9 @@ msgstr ""
#: templates/js/translated/table_filters.js:347
#: templates/js/translated/table_filters.js:578
msgid "Available"
-msgstr ""
+msgstr "Tersedia"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr "Order Produksi"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr "Referensi Order Produksi"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "Produksi induk dari produksi ini"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Tautan eksternal"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Tautan menuju URL eksternal"
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "Tidak ada hasil produksi yang ditentukan"
@@ -1122,37 +1122,37 @@ msgstr "Hasil produksi sudah selesai"
msgid "Build output does not match Build Order"
msgstr "Hasil produksi tidak sesuai dengan order produksi"
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "Jumlah harus lebih besar daripada nol"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr "Jumlah"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
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:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "Item stok teralokasikan terlalu banyak"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "Jumlah yang dialokasikan harus lebih dari nol"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "Jumlah harus 1 untuk stok dengan nomor seri"
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr "Stok Item"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Sumber stok item"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Jumlah stok yang dialokasikan ke produksi"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Pasang ke"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Tujuan stok item"
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "Masukkan nomor seri untuk hasil pesanan"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr "Lokasi hasil pesanan yang selesai"
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1399,7 +1399,7 @@ msgstr "Lokasi hasil pesanan yang selesai"
#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080
#: templates/js/translated/stock.js:3205
msgid "Status"
-msgstr ""
+msgstr "Status"
#: build/serializers.py:585
msgid "Accept Incomplete Allocation"
@@ -1427,7 +1427,7 @@ msgstr ""
#: build/serializers.py:733
msgid "Not permitted"
-msgstr ""
+msgstr "Tidak diizinkan"
#: build/serializers.py:734
msgid "Accept as consumed by this build order"
@@ -1522,7 +1522,7 @@ msgstr "Hasil produksi harus ditentukan untuk mengalokasikan bagian yang terlaca
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Hasil produksi tidak dapat ditentukan untuk alokasi barang yang tidak terlacak"
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr "Item yang dialokasikan harus disediakan"
@@ -1577,7 +1577,7 @@ msgstr ""
#: build/serializers.py:1227 stock/admin.py:53 stock/admin.py:176
#: stock/serializers.py:464
msgid "Location Name"
-msgstr ""
+msgstr "Nama Lokasi"
#: build/serializers.py:1228
msgid "Build Reference"
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1636,7 +1636,7 @@ msgstr ""
#: templates/js/translated/sales_order.js:1732
#: templates/js/translated/stock.js:602
msgid "Serial Number"
-msgstr ""
+msgstr "Nomor Seri"
#: build/serializers.py:1256 stock/serializers.py:600
#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr "Item tagihan material"
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1725,7 +1725,7 @@ msgstr ""
#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98
#: templates/js/translated/table_filters.js:601
msgid "Pending"
-msgstr ""
+msgstr "Tertunda"
#: build/status_codes.py:12
msgid "Production"
@@ -1745,7 +1745,7 @@ msgstr "Dibatalkan"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Selesai"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr "Hapus Produksi"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1943,7 +1940,7 @@ msgstr ""
#: build/templates/build/build_base.html:219
#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331
msgid "Priority"
-msgstr ""
+msgstr "Prioritas"
#: build/templates/build/build_base.html:267
msgid "Issue Build Order"
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2008,7 +2005,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:193
#: templates/js/translated/build.js:2374
msgid "Created"
-msgstr ""
+msgstr "Terbuat"
#: build/templates/build/detail.html:144
msgid "No target date set"
@@ -2018,7 +2015,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:209
#: templates/js/translated/table_filters.js:692
msgid "Completed"
-msgstr ""
+msgstr "Selesai"
#: build/templates/build/detail.html:153
msgid "Build not complete"
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2203,7 +2200,7 @@ msgstr ""
#: common/forms.py:12
msgid "File"
-msgstr ""
+msgstr "Berkas"
#: common/forms.py:12
msgid "Select file to upload"
@@ -2216,7 +2213,7 @@ msgstr ""
#: common/forms.py:26
#, python-brace-format
msgid "Select {name} file to upload"
-msgstr ""
+msgstr "Pilih {name} berkas untuk di unggah"
#: common/models.py:88
msgid "Updated"
@@ -2312,7 +2309,7 @@ msgstr ""
#: common/models.py:1266 company/models.py:108 company/models.py:109
msgid "Company name"
-msgstr ""
+msgstr "Nama Perusahaan"
#: common/models.py:1267
msgid "Internal company name"
@@ -2352,10 +2349,10 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
-msgstr ""
+msgstr "Hari"
#: common/models.py:1301
msgid "Currency Update Plugin"
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,9 +2595,9 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
-msgstr ""
+msgstr "Komponen"
#: common/models.py:1498
msgid "Parts can be used as sub-components by default"
@@ -2800,7 +2797,7 @@ msgstr ""
#: common/models.py:1684
msgid "Enable Reports"
-msgstr ""
+msgstr "Aktifkan Laporan"
#: common/models.py:1685
msgid "Enable generation of reports"
@@ -2823,1020 +2820,1020 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
-msgstr ""
+msgstr "Ukuran Halaman"
#: common/models.py:1703
msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "Surel diperlukan"
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
-msgstr ""
+msgstr "Cari barang"
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
-msgstr ""
+msgstr "Cari Persediaan"
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
-msgstr ""
+msgstr "Cari Lokasi"
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
-msgstr ""
+msgstr "Cari Perusahaan"
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Pengguna"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
#: templates/js/translated/return_order.js:739
msgid "Price"
-msgstr ""
+msgstr "Harga"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
-msgstr ""
+msgstr "Judul"
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr "Tautan"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
-msgstr ""
+msgstr "Kesimpulan"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
-msgstr ""
+msgstr "Berkas Gambar"
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Lampiran"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "File tidak ditemukan"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Tautan eksternal tidak ditemukan"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Pilih file untuk dilampirkan"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Komentar"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
-msgstr ""
+msgstr "Ukuran Berkas"
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr "Label"
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
-msgstr ""
+msgstr "Model"
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4087,7 +4084,7 @@ msgstr ""
#: common/notifications.py:326 common/notifications.py:333 order/api.py:460
msgid "Items Received"
-msgstr ""
+msgstr "Barang diterima"
#: common/notifications.py:328
msgid "Items have been received against a purchase order"
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Nama File"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4261,16 +4258,16 @@ msgstr ""
#: company/templates/company/company_base.html:12 stock/api.py:811
#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496
msgid "Company"
-msgstr ""
+msgstr "Perusahaan"
#: company/models.py:98 company/views.py:51
#: templates/js/translated/search.js:192
msgid "Companies"
-msgstr ""
+msgstr "Perusahaan"
#: company/models.py:114
msgid "Company description"
-msgstr ""
+msgstr "Deskripsi Perusahaan"
#: company/models.py:115
msgid "Description of the company"
@@ -4280,7 +4277,7 @@ msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:54
#: templates/js/translated/company.js:532
msgid "Website"
-msgstr ""
+msgstr "Laman"
#: company/models.py:120
msgid "Company website URL"
@@ -4288,7 +4285,7 @@ msgstr ""
#: company/models.py:125
msgid "Phone number"
-msgstr ""
+msgstr "Nomor Ponsel"
#: company/models.py:127
msgid "Contact phone number"
@@ -4296,7 +4293,7 @@ msgstr ""
#: company/models.py:134
msgid "Contact email address"
-msgstr ""
+msgstr "Kontak alamat surel"
#: company/models.py:139 company/models.py:272
#: company/templates/company/company_base.html:145 order/models.py:343
@@ -4304,7 +4301,7 @@ msgstr ""
#: order/templates/order/return_order_base.html:177
#: order/templates/order/sales_order_base.html:221
msgid "Contact"
-msgstr ""
+msgstr "Kontak"
#: company/models.py:141
msgid "Point of contact"
@@ -4398,7 +4395,7 @@ msgstr ""
#: company/models.py:401 company/models.py:402
#: templates/js/translated/company.js:983
msgid "Postal code"
-msgstr ""
+msgstr "Kode Pos"
#: company/models.py:408
msgid "City/Region"
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4675,7 +4672,7 @@ msgstr ""
#: templates/js/translated/model_renderers.js:313
#: templates/js/translated/part.js:817 templates/js/translated/part.js:1225
msgid "Inactive"
-msgstr ""
+msgstr "Tidak aktif"
#: company/templates/company/company_base.html:27
#: templates/js/translated/purchase_order.js:242
@@ -4719,7 +4716,7 @@ msgstr ""
#: company/templates/company/company_base.html:61
#: part/templates/part/part_thumb.html:12
msgid "Upload new image"
-msgstr ""
+msgstr "Unggah Gambar Baru"
#: company/templates/company/company_base.html:64
#: part/templates/part/part_thumb.html:14
@@ -4729,13 +4726,13 @@ msgstr ""
#: company/templates/company/company_base.html:66
#: part/templates/part/part_thumb.html:16
msgid "Delete image"
-msgstr ""
+msgstr "Hapus Gambar"
#: company/templates/company/company_base.html:92 order/models.py:991
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4743,7 +4740,7 @@ msgstr ""
#: templates/js/translated/stock.js:3044
#: templates/js/translated/table_filters.js:820
msgid "Customer"
-msgstr ""
+msgstr "Pelanggan"
#: company/templates/company/company_base.html:117
msgid "Uses default currency"
@@ -4751,12 +4748,12 @@ msgstr ""
#: company/templates/company/company_base.html:131
msgid "Phone"
-msgstr ""
+msgstr "Ponsel"
#: company/templates/company/company_base.html:211
#: part/templates/part/part_base.html:543
msgid "Remove Image"
-msgstr ""
+msgstr "Hapus Gambar"
#: company/templates/company/company_base.html:212
msgid "Remove associated image from this company"
@@ -4772,12 +4769,12 @@ msgstr ""
#: company/templates/company/company_base.html:243
#: part/templates/part/part_base.html:575
msgid "Upload Image"
-msgstr ""
+msgstr "Unggah Gambar"
#: company/templates/company/company_base.html:258
#: part/templates/part/part_base.html:629
msgid "Download Image"
-msgstr ""
+msgstr "Unduh Gambar"
#: company/templates/company/detail.html:15
#: company/templates/company/manufacturer_part_sidebar.html:7
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5117,7 +5114,7 @@ msgstr ""
#: company/views.py:44
msgid "New Customer"
-msgstr ""
+msgstr "Pelanggan Baru"
#: company/views.py:52
msgid "New Company"
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5313,7 +5310,7 @@ msgstr ""
#: machine/machine_types/label_printer.py:216
msgid "Copies"
-msgstr ""
+msgstr "Tersalin"
#: machine/machine_types/label_printer.py:217
msgid "Number of copies to print for each label"
@@ -5326,7 +5323,7 @@ msgstr ""
#: machine/machine_types/label_printer.py:233 order/api.py:1397
#: templates/js/translated/sales_order.js:1078
msgid "Unknown"
-msgstr ""
+msgstr "Tidak diketahui"
#: machine/machine_types/label_printer.py:234
msgid "Printing"
@@ -5342,7 +5339,7 @@ msgstr ""
#: machine/machine_types/label_printer.py:237
msgid "Disconnected"
-msgstr ""
+msgstr "Jaringan Terputus"
#: machine/machine_types/label_printer.py:244
msgid "Label Printer"
@@ -5419,7 +5416,7 @@ msgstr ""
#: templates/js/translated/purchase_order.js:2195
#: templates/js/translated/sales_order.js:1883
msgid "Total Price"
-msgstr ""
+msgstr "Total Harga"
#: order/api.py:80 order/api.py:151 order/serializers.py:94
#: order/templates/order/order_base.html:123
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5673,7 +5670,7 @@ msgstr ""
#: order/models.py:1469
msgid "deleted"
-msgstr ""
+msgstr "Terhapus"
#: order/models.py:1497
msgid "Supplier part"
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5726,7 +5723,7 @@ msgstr ""
#: order/models.py:1661 part/templates/part/part_pricing.html:107
#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957
msgid "Sale Price"
-msgstr ""
+msgstr "Harga Jual"
#: order/models.py:1662
msgid "Unit sale price"
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6109,7 +6106,7 @@ msgstr ""
#: order/status_codes.py:107
msgid "Replace"
-msgstr ""
+msgstr "Ganti"
#: order/status_codes.py:110
msgid "Refund"
@@ -6117,7 +6114,7 @@ msgstr ""
#: order/status_codes.py:113
msgid "Reject"
-msgstr ""
+msgstr "Tolak"
#: order/tasks.py:25
msgid "Overdue Purchase Order"
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,17 +6616,17 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
-msgstr ""
+msgstr "Harga Minimal"
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
-msgstr ""
+msgstr "Harga Maksimal"
#: part/api.py:104
msgid "Starred"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7179,365 +7176,365 @@ msgstr ""
#: templates/js/translated/purchase_order.js:1801
#: templates/js/translated/stock.js:2906
msgid "Date"
-msgstr ""
+msgstr "Tanggal"
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
-msgstr ""
+msgstr "Lapor"
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
-msgstr ""
+msgstr "Aktif"
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
-msgstr ""
+msgstr "Pilihan"
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
-msgstr ""
+msgstr "Perbarui"
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -7898,7 +7895,7 @@ msgstr ""
#: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884
#: templates/js/translated/purchase_order.js:2154
msgid "Total Quantity"
-msgstr ""
+msgstr "Jumlah Total"
#: part/stocktake.py:225
msgid "Total Cost Min"
@@ -8039,7 +8036,7 @@ msgstr ""
#: part/templates/part/detail.html:45 part/templates/part/prices.html:15
#: templates/js/translated/tables.js:552
msgid "Refresh"
-msgstr ""
+msgstr "Muat Ulang"
#: part/templates/part/detail.html:66
msgid "Add stocktake information"
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8315,14 +8312,14 @@ msgstr ""
#: templates/js/translated/pricing.js:391
#: templates/js/translated/pricing.js:1054
msgid "Price Range"
-msgstr ""
+msgstr "Rentang Harga"
#: part/templates/part/part_base.html:368
msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8336,7 +8333,7 @@ msgstr ""
#: part/templates/part/part_base.html:527
msgid "Calculate"
-msgstr ""
+msgstr "Hitung"
#: part/templates/part/part_base.html:544
msgid "Remove associated image from this part"
@@ -8360,7 +8357,7 @@ msgstr ""
#: part/templates/part/part_pricing.html:95
#: part/templates/part/part_pricing.html:110
msgid "Unit Cost"
-msgstr ""
+msgstr "Harga Unit"
#: part/templates/part/part_pricing.html:40
msgid "No supplier pricing available"
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8490,7 +8487,7 @@ msgstr ""
#: part/templates/part/prices.html:149 part/templates/part/prices.html:326
msgid "Sale History"
-msgstr ""
+msgstr "Riwayat Penjualan"
#: part/templates/part/prices.html:157
msgid "Sale price data is not available for this part"
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8689,7 +8686,7 @@ msgstr ""
#: plugin/base/barcodes/api.py:605
msgid "Not enough information"
-msgstr ""
+msgstr "Tidak cukup informasi"
#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204
msgid "Found multiple matching supplier parts for barcode"
@@ -8814,7 +8811,7 @@ msgstr ""
#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21
#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21
msgid "InvenTree contributors"
-msgstr ""
+msgstr "Kontributor InvenTree"
#: plugin/builtin/barcodes/inventree_barcode.py:34
msgid "Internal Barcode Format"
@@ -8876,7 +8873,7 @@ msgstr ""
#: plugin/builtin/integration/core_notifications.py:166
msgid "Open link"
-msgstr ""
+msgstr "Buka Laman"
#: plugin/builtin/integration/currency_exchange.py:22
msgid "InvenTree Currency Exchange"
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9084,7 +9081,7 @@ msgstr ""
#: plugin/models.py:157 templates/js/translated/table_filters.js:377
#: templates/js/translated/table_filters.js:525
msgid "Installed"
-msgstr ""
+msgstr "Terpasang"
#: plugin/models.py:166
msgid "Sample plugin"
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9165,6 +9162,38 @@ msgstr ""
#: plugin/samples/integration/sample_currency_exchange.py:18
msgid "InvenTree Contributors"
+msgstr "Kontributor InvenTree"
+
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
msgstr ""
#: plugin/serializers.py:81
@@ -9183,7 +9212,7 @@ msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:42
#: templates/js/translated/plugin.js:86
msgid "Version"
-msgstr ""
+msgstr "Versi"
#: plugin/serializers.py:101
msgid "Version specifier for the plugin. Leave blank for latest version."
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,26 +9334,30 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
#: report/helpers.py:43
msgid "A4"
-msgstr ""
+msgstr "A4"
#: report/helpers.py:44
msgid "A3"
-msgstr ""
+msgstr "A3"
#: report/helpers.py:45
msgid "Legal"
-msgstr ""
+msgstr "Legal"
#: report/helpers.py:46
msgid "Letter"
-msgstr ""
+msgstr "Letter"
#: report/models.py:118
msgid "Template file with this name already exists"
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr "Lampiran perlu diunggah untuk tes ini"
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Produksi"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
@@ -14609,11 +14674,11 @@ msgstr ""
#: templates/js/translated/stock.js:2931
msgid "Details"
-msgstr ""
+msgstr "Rincian"
#: templates/js/translated/stock.js:2935
msgid "No changes"
-msgstr ""
+msgstr "Tidak ada perubahan"
#: templates/js/translated/stock.js:2947
msgid "Part information unavailable"
@@ -14649,11 +14714,11 @@ msgstr ""
#: templates/js/translated/stock.js:3090
msgid "Added"
-msgstr ""
+msgstr "Ditambahkan"
#: templates/js/translated/stock.js:3098
msgid "Removed"
-msgstr ""
+msgstr "Terhapus"
#: templates/js/translated/stock.js:3170
msgid "No installed items"
@@ -14709,11 +14774,11 @@ msgstr ""
#: templates/js/translated/stock.js:3478
msgid "This week"
-msgstr ""
+msgstr "Minggu ini"
#: templates/js/translated/stock.js:3486
msgid "This month"
-msgstr ""
+msgstr "Bulan ini"
#: templates/js/translated/table_filters.js:73
msgid "Has project code"
@@ -14800,7 +14865,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:390
#: templates/js/translated/table_filters.js:391
msgid "Serial number"
-msgstr ""
+msgstr "Kode Seri"
#: templates/js/translated/table_filters.js:321
#: templates/js/translated/table_filters.js:412
@@ -15044,27 +15109,27 @@ msgstr ""
#: templates/navbar.html:45
msgid "Buy"
-msgstr ""
+msgstr "Beli"
#: templates/navbar.html:57
msgid "Sell"
-msgstr ""
+msgstr "Jual"
#: templates/navbar.html:121
msgid "Show Notifications"
-msgstr ""
+msgstr "Tampilkan Notifikasi"
#: templates/navbar.html:124
msgid "New Notifications"
-msgstr ""
+msgstr "Notifikasi baru"
#: templates/navbar.html:144 users/models.py:201
msgid "Admin"
-msgstr ""
+msgstr "Admin"
#: templates/navbar.html:148
msgid "Logout"
-msgstr ""
+msgstr "Keluar"
#: templates/notes_buttons.html:6 templates/notes_buttons.html:7
msgid "Save"
@@ -15088,7 +15153,7 @@ msgstr ""
#: templates/pui_banner.html:15
msgid "here"
-msgstr ""
+msgstr "disini"
#: templates/qr_code.html:11
msgid "QR data not provided"
@@ -15108,7 +15173,7 @@ msgstr ""
#: templates/search.html:12
msgid "Clear search"
-msgstr ""
+msgstr "Hapus Pencarian"
#: templates/search.html:15
msgid "Close search menu"
@@ -15133,7 +15198,7 @@ msgstr ""
#: templates/socialaccount/login.html:13
#, python-format
msgid "Connect %(provider)s"
-msgstr ""
+msgstr "Tersambung %(provider)s"
#: templates/socialaccount/login.html:15
#, python-format
@@ -15152,7 +15217,7 @@ msgstr ""
#: templates/socialaccount/login.html:24
msgid "Continue"
-msgstr ""
+msgstr "Selanjutnya"
#: templates/socialaccount/login.html:29
msgid "Invalid SSO Provider"
@@ -15185,7 +15250,7 @@ msgstr ""
#: templates/stats.html:18
msgid "Database"
-msgstr ""
+msgstr "Basis data"
#: templates/stats.html:26
msgid "Server is running in debug mode"
@@ -15245,19 +15310,19 @@ msgstr ""
#: templates/test_statistics_table.html:16
msgid "Failed"
-msgstr ""
+msgstr "Gagal"
#: templates/yesnolabel.html:4
msgid "Yes"
-msgstr ""
+msgstr "Ya"
#: templates/yesnolabel.html:6
msgid "No"
-msgstr ""
+msgstr "Tidak"
#: users/admin.py:101
msgid "Users"
-msgstr ""
+msgstr "Pengguna"
#: users/admin.py:102
msgid "Select which users are assigned to this group"
@@ -15285,7 +15350,7 @@ msgstr ""
#: users/authentication.py:32
msgid "Token has expired"
-msgstr ""
+msgstr "Token telah kadaluarsa"
#: users/models.py:81
msgid "API Token"
@@ -15297,7 +15362,7 @@ msgstr ""
#: users/models.py:118
msgid "Token Name"
-msgstr ""
+msgstr "Nama Token"
#: users/models.py:119
msgid "Custom token name"
@@ -15309,7 +15374,7 @@ msgstr ""
#: users/models.py:133
msgid "Last Seen"
-msgstr ""
+msgstr "Terakhir diliat"
#: users/models.py:134
msgid "Last time the token was used"
@@ -15341,7 +15406,7 @@ msgstr ""
#: users/models.py:401
msgid "Change"
-msgstr ""
+msgstr "Ganti"
#: users/models.py:403
msgid "Permissions to edit items"
diff --git a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po
index d6182a7c8900..9b5f4f0963a7 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -126,7 +126,7 @@ msgstr "È necessario digitare la stessa e-mail ogni volta."
#: InvenTree/forms.py:221
msgid "MFA Registration is disabled."
-msgstr ""
+msgstr "La registrazione MFA è disabilitata."
#: InvenTree/forms.py:259 InvenTree/forms.py:267
msgid "The provided primary email address is not valid."
@@ -364,7 +364,7 @@ msgstr "Cinese (Tradizionale)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] Accedi all'app"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Nomi duplicati non possono esistere sotto lo stesso genitore"
msgid "Invalid choice"
msgstr "Scelta non valida"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Nome"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Errore del server"
msgid "An error has been logged by the server."
msgstr "Un errore è stato loggato dal server."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Deve essere un numero valido"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Selezionare la valuta dalle opzioni disponibili"
msgid "Username"
msgstr "Nome utente"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "Nome"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr "Nome dell'utente"
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "Cognome"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr "Cognome dell'utente"
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr "Indirizzo email dell'utente"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr "Staff"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr "Questo utente ha i permessi dello staff"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr "Superuser"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr "Questo utente è un superutente"
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr "Questo utente è un superutente"
msgid "Active"
msgstr "Attivo"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr "Questo account utente è attivo"
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "Non hai i permessi per cambiare il ruolo dell'utente."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Solo i superutenti possono creare nuovi utenti"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "Il tuo account è stato creato."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "Si prega di utilizzare la funzione di reset password per accedere"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "Benvenuto in InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Valore non valido"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "File dati"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Seleziona un file per il caricamento"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Formato file non supportato"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "File troppo grande"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Nessun colonna trovata nel file"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Nessuna riga di dati trovata nel file"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Nessun dato fornito"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Nessuna colonna di dati fornita"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Colonna richiesta mancante: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Colonna duplicata: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Immagine Remota"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "URL del file immagine remota"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "Il download delle immagini da URL remoto non è abilitato"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Controllo in background non riuscito"
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr "La produzione deve essere annullata prima di poter essere eliminata"
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "La produzione deve essere annullata prima di poter essere eliminata"
msgid "Consumable"
msgstr "Consumabile"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "Opzionale"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr "Allocato"
msgid "Available"
msgstr "Disponibile"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Disponibile"
msgid "Build Order"
msgstr "Ordine di Produzione"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr "Riferimento Ordine Di Produzione"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "Ordine di produzione a cui questa produzione viene assegnata"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr "Utente o gruppo responsabile di questo ordine di produzione"
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Collegamento esterno"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Link a URL esterno"
@@ -1110,7 +1110,7 @@ msgstr "L'ordine di produzione {build} è stato completato"
msgid "A build order has been completed"
msgstr "L'ordine di produzione è stato completato"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "Nessun output di produzione specificato"
@@ -1122,37 +1122,37 @@ msgstr "La produzione è stata completata"
msgid "Build output does not match Build Order"
msgstr "L'output della produzione non corrisponde all'ordine di compilazione"
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "La quantità deve essere maggiore di zero"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr "La quantità non può essere maggiore della quantità in uscita"
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr "Crea oggetto"
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr "Crea oggetto"
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr "Crea oggetto"
msgid "Quantity"
msgstr "Quantità"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr "Quantità richiesta per l'ordine di costruzione"
-#: build/models.py:1586
+#: build/models.py:1597
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:1595
+#: build/models.py:1606
#, 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:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "L'articolo in giacenza è sovrallocato"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "La quantità di assegnazione deve essere maggiore di zero"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "La quantità deve essere 1 per lo stock serializzato"
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr "L'articolo in stock selezionato non corrisponde alla voce nella BOM"
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr "L'articolo in stock selezionato non corrisponde alla voce nella BOM"
msgid "Stock Item"
msgstr "Articoli in magazzino"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Origine giacenza articolo"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Quantità di magazzino da assegnare per la produzione"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Installa in"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Destinazione articolo in giacenza"
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr "Nome Articolo"
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "Inserisci i numeri di serie per gli output di compilazione (build option)"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr "Posizione per gli output di build completati"
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr "L'output di produzione deve essere specificato per l'ubicazione delle pa
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "L'output di produzione non deve essere specificato per l'ubicazione delle parti non tracciate"
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr "Deve essere indicata l'allocazione dell'articolo"
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr "Confezionamento"
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr "Codice Articolo"
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr "IPN Articolo"
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr "Numero Seriale"
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr "Quantità Disponibile"
@@ -1667,13 +1667,13 @@ msgstr "Tracciabile"
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046
#: templates/js/translated/build.js:2714
msgid "Allow Variants"
msgstr "Consenti Le Varianti"
-#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr "Distinta base (Bom)"
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr "Ordinato"
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "Annullato"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Completo"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr "Elimina Produzione"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr "Outputs Completati"
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr "Articoli Assegnati"
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr "Output Incompleti"
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "giorni"
@@ -2581,9 +2578,9 @@ msgstr "Copia Template Parametri Categoria"
msgid "Copy category parameter templates when creating a part"
msgstr "Copia i modelli dei parametri categoria quando si crea un articolo"
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,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:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr "Componente"
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "Dimensioni pagina"
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr "Dimensione predefinita della pagina per i report PDF"
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr "Abilita Rapporto di Prova"
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr "Abilita generazione di stampe di prova"
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr "Allega Rapporto di Prova"
-
-#: common/models.py:1716
-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:1722
msgid "Globally Unique Serials"
msgstr "Seriali Unici Globali"
-#: common/models.py:1723
+#: common/models.py:1709
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:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr "Auto Riempimento Numeri Seriali"
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr "Auto riempimento numeri nel modulo"
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr "Elimina scorte esaurite"
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr "Modello Codice a Barre"
-#: common/models.py:1744
+#: common/models.py:1730
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:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr "Scadenza giacenza"
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr "Abilita funzionalità di scadenza della giacenza"
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr "Vendi giacenza scaduta"
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr "Consenti la vendita di stock scaduti"
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr "Tempo di Scorta del Magazzino"
-#: common/models.py:1763
+#: common/models.py:1749
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:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr "Crea giacenza scaduta"
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr "Permetti produzione con stock scaduto"
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr "Controllo della proprietà della giacenza"
-#: common/models.py:1777
+#: common/models.py:1763
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:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr "Icona Predefinita Ubicazione di Magazzino"
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr "Icona Predefinita Ubicazione di Magazzino (vuoto significa nessuna icona)"
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr "Modello Di Riferimento Ordine Di Produzione"
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr "Modello richiesto per generare il campo di riferimento ordine di produzione"
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr "Modello Di Riferimento Ordine Di Vendita"
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr "Modello richiesto per generare il campo di riferimento ordine di vendita"
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr "Spedizione Predefinita Ordine Di Vendita"
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr "Abilita la creazione di spedizioni predefinite con ordini di vendita"
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr "Modifica Ordini Di Vendita Completati"
-#: common/models.py:1910
+#: common/models.py:1896
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:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr "Modello di Riferimento Ordine D'Acquisto"
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Modello richiesto per generare il campo di riferimento ordine di acquisto"
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr "Modifica Ordini Di Acquisto Completati"
-#: common/models.py:1940
+#: common/models.py:1926
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:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr "Abilita password dimenticata"
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr "Abilita la funzione password dimenticata nelle pagine di accesso"
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr "Abilita registrazione"
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso"
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr "SSO abilitato"
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr "Abilita SSO nelle pagine di accesso"
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr "Abilita registrazione SSO"
-#: common/models.py:1975
+#: common/models.py:1961
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:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "Email richiesta"
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione"
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr "Riempimento automatico degli utenti SSO"
-#: common/models.py:2021
+#: common/models.py:2007
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:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr "Posta due volte"
-#: common/models.py:2028
+#: common/models.py:2014
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:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr "Password due volte"
-#: common/models.py:2034
+#: common/models.py:2020
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:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr "Domini consentiti"
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr "Gruppo iscrizione"
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr "Applica MFA"
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr "Gli utenti devono utilizzare la sicurezza a due fattori."
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr "Controlla i plugin all'avvio"
-#: common/models.py:2063
+#: common/models.py:2049
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:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr "Abilita l'integrazione URL"
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr "Attiva plugin per aggiungere percorsi URL"
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr "Attiva integrazione navigazione"
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr "Abilita i plugin per l'integrazione nella navigazione"
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr "Abilita l'app integrata"
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr "Abilita plugin per aggiungere applicazioni"
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr "Abilita integrazione pianificazione"
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr "Abilita i plugin per eseguire le attività pianificate"
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr "Abilita eventi integrati"
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr "Abilita plugin per rispondere agli eventi interni"
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr "Funzionalità Dell'Inventario"
-#: common/models.py:2121
+#: common/models.py:2114
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:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr "Inventario periodico automatico"
-#: common/models.py:2137
+#: common/models.py:2130
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:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
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:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole"
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr "Nascondi Articoli Inattivi"
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr "Mostra articoli sottoscritti"
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr "Mostra gli articoli sottoscritti nella homepage"
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr "Mostra le categorie sottoscritte"
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr "Mostra le categorie dei componenti sottoscritti nella homepage"
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr "Mostra ultimi articoli"
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr "Mostra gli ultimi articoli sulla homepage"
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr "Mostra le distinte base che attendono la convalida sulla homepage"
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr "Mostra le modifiche recenti alle giacenze"
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr "Mostra le giacenze modificate di recente nella homepage"
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr "Mostra disponibilità scarsa delle giacenze"
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr "Mostra disponibilità scarsa degli articoli sulla homepage"
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr "Mostra scorte esaurite"
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr "Mostra disponibilità scarsa delle scorte degli articoli sulla homepage"
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr "Mostra scorte necessarie"
-#: common/models.py:2265
+#: common/models.py:2266
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:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr "Mostra scorte esaurite"
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr "Mostra gli articoli stock scaduti nella home page"
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr "Mostra scorte obsolete"
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr "Mostra gli elementi obsoleti esistenti sulla home page"
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr "Mostra produzioni in attesa"
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr "Mostra produzioni in attesa sulla homepage"
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr "Mostra produzioni in ritardo"
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr "Mostra produzioni in ritardo sulla home page"
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr "Mostra ordini di produzione inevasi"
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr "Mostra ordini di produzione inevasi sulla home page"
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr "Mostra Ordini di Produzione in ritardo"
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr "Mostra Ordini di Produzione in ritardo sulla home page"
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr "Mostra Ordini di Vendita inevasi"
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr "Mostra Ordini di Vendita inevasi sulla home page"
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr "Mostra Ordini di Vendita in ritardo"
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr "Mostra Ordini di Vendita in ritardo sulla home page"
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr "Mostra Notizie"
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr "Mostra notizie sulla home page"
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr "Visualizzazione dell'etichetta in linea"
-#: common/models.py:2332
+#: common/models.py:2333
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:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr "Stampante per etichette predefinita"
-#: common/models.py:2340
+#: common/models.py:2341
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:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr "Visualizzazione dell'etichetta in linea"
-#: common/models.py:2348
+#: common/models.py:2349
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:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr "Cerca Articoli"
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr "Mostra articoli della ricerca nella finestra di anteprima"
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr "Mostra articoli del fornitore nella finestra di anteprima"
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr "Cerca Articoli Produttore"
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr "Mostra articoli del produttore nella finestra di anteprima"
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr "Nascondi Articoli Inattivi"
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr "Escludi articoli inattivi dalla finestra di anteprima della ricerca"
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr "Cerca Categorie"
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr "Mostra categorie articolo nella finestra di anteprima di ricerca"
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr "Cerca Giacenze"
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr "Mostra articoli in giacenza nella finestra di anteprima della ricerca"
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr "Nascondi elementi non disponibili"
-#: common/models.py:2392
+#: common/models.py:2393
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:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr "Cerca Ubicazioni"
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr "Mostra ubicazioni delle giacenze nella finestra di anteprima di ricerca"
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr "Cerca Aziende"
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr "Mostra le aziende nella finestra di anteprima di ricerca"
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr "Cerca Ordini Di Produzione"
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr "Mostra gli ordini di produzione nella finestra di anteprima di ricerca"
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr "Cerca Ordini di Acquisto"
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr "Mostra gli ordini di acquisto nella finestra di anteprima di ricerca"
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr "Escludi Ordini D'Acquisto Inattivi"
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Escludi ordini di acquisto inattivi dalla finestra di anteprima di ricerca"
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr "Cerca Ordini Di Vendita"
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr "Visualizzazione degli ordini di vendita nella finestra di anteprima della ricerca"
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr "Escludi Ordini Di Vendita Inattivi"
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr "Escludi ordini di vendita inattivi dalla finestra di anteprima di ricerca"
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr "Cerca Ordini Di Reso"
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr "Risultati Dell'Anteprima Di Ricerca"
-#: common/models.py:2460
+#: common/models.py:2461
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:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr "Ricerca con regex"
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr "Mostra quantità nei moduli"
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr "Visualizzare la quantità di pezzi disponibili in alcuni moduli"
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr "Il tasto Esc chiude i moduli"
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr "Utilizzare il tasto Esc per chiudere i moduli modali"
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr "Barra di navigazione fissa"
-#: common/models.py:2491
+#: common/models.py:2492
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:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr "Formato Data"
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr "Formato predefinito per visualizzare le date"
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Programmazione Prodotto"
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr "Mostra informazioni sulla pianificazione del prodotto"
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Inventario Prodotto"
-#: common/models.py:2518
+#: common/models.py:2519
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:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr "Lunghezza Stringa Tabella"
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Utente"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr "Quantità prezzo limite"
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr "Quantità prezzo limite"
msgid "Price"
msgstr "Prezzo"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr "Prezzo unitario in quantità specificata"
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr "Scadenza"
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr "Scadenza in cui questa notifica viene ricevuta"
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr "Nome per questa notifica"
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr "È questa notifica attiva"
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr "Token per l'accesso"
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr "Segreto"
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr "Segreto condiviso per HMAC"
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr "ID Messaggio"
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr "Identificatore unico per questo messaggio"
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr "Host da cui questo messaggio è stato ricevuto"
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr "Intestazione"
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr "Intestazione di questo messaggio"
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr "Contenuto"
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr "Contenuto di questo messaggio"
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr "Scadenza in cui questo messaggio è stato ricevuto"
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr "Lavorato il"
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr "Il lavoro su questo messaggio è terminato?"
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Titolo"
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr "Titolo"
msgid "Link"
msgstr "Collegamento"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr "Pubblicato"
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Riepilogo"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr "Letto"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr "Queste notizie sull'elemento sono state lette?"
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "Immagine"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr "File immagine"
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Allegato"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "File mancante"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Link esterno mancante"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Seleziona file da allegare"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Commento"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr "Errore generato dal plugin"
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Nome del file"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr "Codice articolo produttore"
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Articolo di base"
@@ -4463,8 +4460,8 @@ msgstr "Seleziona articolo"
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr "Seleziona Produttore"
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr "Nome parametro"
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr "Valore del parametro"
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr "Unità parametri"
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr "Fornitore"
msgid "Select supplier"
msgstr "Seleziona fornitore"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr "Unità di giacenza magazzino fornitore"
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr "Descrizione articolo fornitore"
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr "Descrizione articolo fornitore"
msgid "Note"
msgstr "Nota"
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr "costo base"
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Onere minimo (ad esempio tassa di stoccaggio)"
@@ -4629,7 +4626,7 @@ msgstr "Quantità Confezione"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr "multiplo"
@@ -4661,7 +4658,7 @@ msgstr "Valuta predefinita utilizzata per questo fornitore"
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr "Elimina immagine"
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr "Nessuna informazione sul fornitore disponibile"
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr "Dati"
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr "Numero di elementi ricevuti"
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr "Prezzo di Acquisto"
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr "Utente che ha controllato questa spedizione"
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr "Spedizione"
@@ -5982,7 +5979,7 @@ msgstr "Elemento Riga"
msgid "Line item does not match purchase order"
msgstr "L'elemento di riga non corrisponde all'ordine di acquisto"
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti"
@@ -6019,7 +6016,7 @@ msgstr "Il codice a barre è già in uso"
msgid "An integer quantity must be provided for trackable parts"
msgstr "Deve essere fornita una quantità intera per gli articoli rintracciabili"
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr "Gli elementi di linea devono essere forniti"
@@ -6051,39 +6048,39 @@ msgstr "La quantità deve essere positiva"
msgid "Enter serial numbers to allocate"
msgstr "Inserisci i numeri di serie da assegnare"
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr "La spedizione è già stata spedita"
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr "La spedizione non è associata con questo ordine"
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr "Nessuna corrispondenza trovata per i seguenti numeri di serie"
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
-msgstr "I seguenti numeri di serie sono già assegnati"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
+msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ 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:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr "Id Categoria"
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr "Nome Categoria"
@@ -6562,18 +6559,18 @@ msgstr "Scorta Minima"
msgid "Used In"
msgstr "Utilizzato In"
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr "In Costruzione"
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr "Costo Minimo"
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr "Costo Massimo"
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr "Percorso Categoria"
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr "IPN Principale"
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Prezzo Minimo"
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr "Posizione Predefinita"
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Giacenze Totali"
@@ -6755,7 +6752,7 @@ msgstr "Giacenze Totali"
msgid "Input quantity for price calculation"
msgstr "Digita la quantità per il calcolo del prezzo"
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoria Articoli"
@@ -6878,7 +6875,7 @@ msgstr "Un articolo con questo Nome, IPN e Revisione esiste già."
msgid "Parts cannot be assigned to structural part categories!"
msgstr "Gli articoli non possono essere assegnati a categorie articolo principali!"
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr "Nome articolo"
@@ -6906,7 +6903,7 @@ msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
msgid "Part category"
msgstr "Categoria articolo"
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr "Numero di revisione o di versione"
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr "Ultimo Inventario"
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr "Vendita multipla"
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr "Valuta utilizzata per calcolare i prezzi"
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr "Costo Minimo Distinta Base"
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr "Costo minimo dei componenti dell'articolo"
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr "Costo Massimo Distinta Base"
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr "Costo massimo dei componenti dell'articolo"
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr "Importo Acquisto Minimo"
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr "Costo minimo di acquisto storico"
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr "Importo massimo acquisto"
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr "Costo massimo di acquisto storico"
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr "Prezzo Interno Minimo"
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr "Costo minimo basato su interruzioni di prezzo interne"
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr "Prezzo Interno Massimo"
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr "Costo massimo basato su interruzioni di prezzo interne"
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr "Prezzo Minimo Fornitore"
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr "Prezzo minimo articolo da fornitori esterni"
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr "Prezzo Massimo Fornitore"
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr "Prezzo massimo dell'articolo proveniente da fornitori esterni"
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr "Variazione di costo minimo"
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr "Costo minimo calcolato di variazione dell'articolo"
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr "Massima variazione di costo"
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr "Costo massimo calcolato di variazione dell'articolo"
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr "Costo minimo totale calcolato"
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr "Costo massimo totale calcolato"
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr "Prezzo Di Vendita Minimo"
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr "Prezzo minimo di vendita basato sulle interruzioni di prezzo"
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr "Prezzo Di Vendita Massimo"
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr "Prezzo massimo di vendita basato sulle interruzioni di prezzo"
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr "Costo Di Vendita Minimo"
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr "Prezzo storico minimo di vendita"
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr "Costo Di Vendita Minimo"
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr "Prezzo storico massimo di vendita"
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr "Articolo per l'inventario"
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr "Contatore Elemento"
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr "Numero di scorte individuali al momento dell'inventario"
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr "Totale delle scorte disponibili al momento dell'inventario"
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr "Totale delle scorte disponibili al momento dell'inventario"
msgid "Date"
msgstr "Data"
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr "Data in cui è stato effettuato l'inventario"
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr "Note aggiuntive"
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr "Utente che ha eseguito questo inventario"
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr "Costo Minimo Scorta"
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr "Costo minimo stimato di magazzino a disposizione"
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr "Costo Massimo Scorte"
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr "Costo massimo stimato di magazzino a disposizione"
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr "File Report Inventario (generato internamente)"
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr "Conteggio Articolo"
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr "Numero di articoli oggetto d'inventario"
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr "Utente che ha richiesto questo report inventario"
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr "Nome Test"
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr "Inserisci un nome per la prova"
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr "Descrizione Di Prova"
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr "Inserisci descrizione per questa prova"
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr "Abilitato"
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr "Richiesto"
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr "Questa prova è necessaria per passare?"
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr "Valore richiesto"
-#: part/models.py:3647
+#: part/models.py:3634
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:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr "Allegato Richiesto"
-#: part/models.py:3654
+#: part/models.py:3641
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:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr "Il nome del modello del parametro deve essere univoco"
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr "Nome Parametro"
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr "Descrizione del parametro"
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr "Articolo principale"
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Modello Parametro"
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr "Valore del Parametro"
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Valore Predefinito"
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr "Valore Parametro Predefinito"
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr "ID articolo o nome articolo"
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr "Valore ID articolo univoco"
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr "Valore IPN articolo"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr "Livello"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr "Livello distinta base"
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr "Seleziona articolo principale"
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr "Articolo subordinato"
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr "Seleziona l'articolo da utilizzare nella Distinta Base"
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr "Quantità Distinta Base per questo elemento Distinta Base"
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr "Questo elemento della Distinta Base è opzionale"
-#: part/models.py:4279
+#: part/models.py:4266
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:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Eccedenza"
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Quantità stimata scarti di produzione (assoluta o percentuale)"
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr "Riferimento Elemento Distinta Base"
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr "Note Elemento Distinta Base"
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr "Codice di controllo"
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr "Codice di controllo Distinta Base"
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr "Convalidato"
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
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:4327
+#: part/models.py:4314
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:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr "La quantità deve essere un valore intero per gli articoli rintracciabili"
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr "L'articolo subordinato deve essere specificato"
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr "Elemento Distinta Base Sostituito"
-#: part/models.py:4582
+#: part/models.py:4575
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:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr "Elemento principale Distinta Base"
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr "Sostituisci l'Articolo"
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr "Articolo 1"
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr "Articolo 2"
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr "Seleziona Prodotto Relativo"
-#: part/models.py:4647
+#: part/models.py:4640
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:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr "La relazione duplicata esiste già"
@@ -7571,326 +7568,326 @@ msgstr "Valuta di acquisto di questo articolo in stock"
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr "Articolo Originale"
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr "Seleziona l'articolo originale da duplicare"
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr "Copia immagine"
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr "Copia immagine dall'articolo originale"
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr "Copia Distinta Base"
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr "Copia fattura dei materiali dall'articolo originale"
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr "Copia parametri"
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr "Copia i dati dei parametri dall'articolo originale"
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr "Quantità iniziale"
-#: part/serializers.py:527
+#: part/serializers.py:525
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:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr "Ubicazione Iniziale Magazzino"
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr "Specificare l'ubicazione iniziale del magazzino per questo Articolo"
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr "Seleziona il fornitore (o lascia vuoto per saltare)"
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Seleziona il produttore (o lascia vuoto per saltare)"
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr "Codice articolo Produttore"
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr "L'azienda selezionata non è un fornitore valido"
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr "L'azienda selezionata non è un produttore valido"
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr "L'articolo del produttore che corrisponde a questo MPN esiste già"
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr "L'articolo del fornitore che corrisponde a questo SKU esiste già"
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr "Duplica articolo"
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr "Copia i dati iniziali da un altro Articolo"
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr "Stock iniziale"
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr "Crea Articolo con quantità di scorta iniziale"
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr "Informazioni Fornitore"
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr "Aggiungi le informazioni iniziali del fornitore per questo articolo"
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr "Copia Parametri Categoria"
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr "Copia i parametri dai modelli della categoria articolo selezionata"
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
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:1225
+#: part/serializers.py:1223
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:1235
+#: part/serializers.py:1233
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:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr "Genera Report"
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr "Genera file di report contenente dati di inventario calcolati"
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr "Aggiorna Articoli"
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr "Aggiorna gli articoli specificati con i dati calcolati di inventario"
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr "La funzione Inventario non è abilitata"
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr "Aggiorna"
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr "Aggiorna i prezzi per questo articolo"
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr "Puoi produrre"
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr "Seleziona l'articolo da cui copiare la distinta base"
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr "Rimuovi Dati Esistenti"
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr "Rimuovi elementi distinta base esistenti prima di copiare"
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr "Includi Ereditato"
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr "Includi gli elementi Distinta Base ereditati da prodotti template"
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr "Salta Righe Non Valide"
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr "Abilita questa opzione per saltare le righe non valide"
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr "Copia Articoli sostitutivi"
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Copia articoli sostitutivi quando duplichi gli elementi distinta base"
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr "Cancella Distinta Base esistente"
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr "Rimuovi elementi distinta base esistenti prima del caricamento"
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr "Nessuna colonna articolo specificata"
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr "Trovati più articoli corrispondenti"
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr "Nessun articolo corrispondente trovato"
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr "L'articolo non è indicato come componente"
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr "Quantità non fornita"
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr "Quantità non valida"
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr "Almeno un elemento della distinta base è richiesto"
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr "Sottoscrivi le notifiche per questo articolo"
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr "Stampa Etichetta"
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr "Mostra informazioni sui prezzi"
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr "Azioni magazzino"
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr "Assegnato agli Ordini di Produzione"
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr "Assegnato agli Ordini di Vendita"
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr "Ultimo Numero Di Serie"
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr "Ricerca per numero seriale"
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr "Modifica"
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr "Immagine articolo non trovata"
msgid "Part Pricing"
msgstr "Prezzo Articolo"
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr "Plugin Integrato"
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr "URL di origine"
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr "Nessun oggetto valido fornito nel modello"
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr "Il file del modello '{template}' è mancante o non esiste"
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr "Formato del nome file"
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr "Filtri"
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr "Larghezza [mm]"
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr "Larghezza dell'etichetta, specificata in mm"
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr "Altezza [mm]"
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr "Larghezza dell'etichetta, specificata in mm"
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr "Report file snippet"
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr "Descrizione file snippet"
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr "Risorsa"
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr "Report file risorsa"
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr "File risorsa descrizione"
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr "Risultati Test"
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr "Risultato"
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr "ID Cliente"
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr "Installato In"
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr "Elimina al esaurimento"
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr "Data di Scadenza"
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr "Obsoleto"
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr "Posizioni magazzino"
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr "Proprietario"
@@ -9826,7 +9891,7 @@ msgstr "Genera Costruzione"
msgid "Build for this stock item"
msgstr "Costruisci per questo elemento di magazzino"
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr "La quantità non corrisponde ai numeri di serie"
msgid "Serial numbers already exist"
msgstr "Numeri di serie già esistenti"
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr "I codici di stato dello stock devono corrispondere"
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Le giacenze non possono essere spostate perché non disponibili"
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr "Note d'ingresso"
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr "Il valore deve essere fornito per questo test"
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr "L'allegato deve essere caricato per questo test"
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr "Risultato Test"
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr "Test valore output"
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr "Risultato della prova allegato"
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr "Note del test"
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr "Il numero di serie è troppo grande"
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr "Elemento principale"
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr "Scaduto"
@@ -10410,7 +10475,7 @@ msgstr "Questo elemento di magazzino non ha nessun elemento secondario"
msgid "Test Data"
msgstr "Dati di Test"
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr "Rapporto del Test"
@@ -10450,200 +10515,204 @@ msgstr "Individua elemento di magazzino"
msgid "Scan to Location"
msgstr "Scansiona nella posizione"
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr "Impostazioni di stampa"
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr "Azioni adeguamento giacenza"
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: 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
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr "Aggiungi giacenza"
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr "Rimuovi giacenza"
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr "Serializza magazzino"
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: 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
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr "Assegna al cliente"
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr "Torna al magazzino"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr "Disinstalla elemento di magazzino"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr "Disinstalla"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr "Installa elementi stock"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr "Installa"
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr "Converti in variante"
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr "Duplica elemento di magazzino"
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr "Modifica elemento di magazzino"
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr "Cancella elemento di magazzino"
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Produzione"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr "Nessun produttore impostato"
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
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/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr "Sola lettura"
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr "Elemento di magazzino non disponibile"
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr "Questo elemento di magazzino è in produzione e non può essere modificato."
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr "Modifica l'elemento di magazzino dalla visualizzazione generata."
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr "Questo elemento di magazzino è stato assegnato all'Ordine di Vendita"
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr "Questo elemento di magazzino è stato assegnato all'Ordine di Produzione"
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr "pagina precedente"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr "Vai al numero di serie precedente"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr "pagina successiva"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr "Vai al numero di serie successivo"
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr "Nessuna posizione impostata"
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr "Test"
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr "Questo elemento di magazzino non ha superato i test richiesti"
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr "Questo Elemento Stock è scaduto il %(item.expiry_date)s"
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Questo Elemento Stock scade il %(item.expiry_date)s"
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr "Nessun inventario eseguito"
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr "Selezionare una delle varianti dell'articolo elencate sotto."
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr "Attenzione"
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr "Questa azione non può essere facilmente annullata"
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr "Impostazioni Ordine di Vendita"
msgid "Stock Settings"
msgstr "Impostazioni Magazzino"
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr "Aggiungi allegato"
msgid "Barcode Identifier"
msgstr "Codice a Barre Identificativo"
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr "È necessario riavviare il server"
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr "È stata modificata un'impostazione che richiede un riavvio del server"
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr "Contatta l'amministratore per maggiori informazioni"
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po
index f09655485c83..c5234cc85c7f 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr ""
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr "無効な選択です"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "お名前"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "有効な数字でなければなりません"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "利用可能なオプションから通貨を選択してください"
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "このユーザのロールを変更する権限がありません"
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "無効な値です。"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "データファイル"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "アップロードするファイルを選択"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "サポートされていないファイル形式"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "ファイルサイズが大きすぎます"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "ファイルに列が見つかりません"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "ファイルにデータ行がみつかりません"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "データが入力されていません"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "データ列が指定されていません"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "必須の列がありません: {name}"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "{col} 列が重複しています。"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "外部画像ファイルのURL"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "外部URLからの画像ダウンロードは許可されていません"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "バックグラウンドワーカーのチェックに失敗しました"
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "オプション"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr "組立注文"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "外部リンク"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "外部 サイト へのリンク"
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr "数量"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr "在庫商品"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr "シリアル番号"
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr "追跡可能"
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "キャンセル済"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "完了"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr "組立を削除"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます"
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr "コンポーネント"
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr "シリアル番号を自動入力"
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "メールアドレスは必須です"
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr "非アクティブな部品を非表示"
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr "購読中の部品を表示"
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr "購読中のカテゴリを表示"
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "ユーザー"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr "メッセージ ID:"
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr "リンク"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "添付ファイル"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "ファイルがありません"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "外部リンクが見つかりません。"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "添付ファイルを選択"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "コメント:"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "ファイル名"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr "メーカー・パーツ"
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr "仕入先"
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr "購入金額"
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr "割り当てるシリアル番号を入力"
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr "カテゴリID"
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr "カテゴリ名"
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "パーツカテゴリ"
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr "パーツカテゴリ"
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr "カテゴリを選択"
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr "このパーツの通知を受け取る"
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr "シリアル番号で検索"
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr "シリアル番号が既に存在します"
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr "シリアル番号が大きすぎます"
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr "期限切れ"
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "組立"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po
index 0512dfad3d90..d686591f3468 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr ""
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr ""
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr ""
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr ""
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr ""
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr ""
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr ""
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr ""
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr ""
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr ""
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr ""
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr ""
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po
index 507a0d4f40d5..11096871dd42 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Latvian\n"
"Language: lv_LV\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr ""
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr ""
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr ""
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr ""
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr ""
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr ""
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr ""
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr ""
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr ""
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr ""
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr ""
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr ""
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po
index f3a89a270104..c9bd436d2980 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -28,7 +28,7 @@ msgstr "Gebruiker heeft geen rechten om dit model te bekijken"
#: InvenTree/conversion.py:161
#, python-brace-format
msgid "Invalid unit provided ({unit})"
-msgstr ""
+msgstr "Ongeldige eenheid opgegeven ({unit})"
#: InvenTree/conversion.py:178
msgid "No value provided"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -126,7 +126,7 @@ msgstr "Er moet hetzelfde e-mailadres ingevoerd worden."
#: InvenTree/forms.py:221
msgid "MFA Registration is disabled."
-msgstr ""
+msgstr "Registratie is uitgeschakeld."
#: InvenTree/forms.py:259 InvenTree/forms.py:267
msgid "The provided primary email address is not valid."
@@ -155,17 +155,17 @@ msgstr "Duplicaat serienummer"
#: InvenTree/helpers.py:554 InvenTree/helpers.py:597
#, python-brace-format
msgid "Invalid group range: {group}"
-msgstr ""
+msgstr "Ongeldig groepsbereik: {group}"
#: InvenTree/helpers.py:585
#, python-brace-format
msgid "Group range {group} exceeds allowed quantity ({expected_quantity})"
-msgstr ""
+msgstr "Groepsbereik {group} overschrijdt toegestane hoeveelheid ({expected_quantity})"
#: InvenTree/helpers.py:615 InvenTree/helpers.py:622 InvenTree/helpers.py:641
#, python-brace-format
msgid "Invalid group sequence: {group}"
-msgstr ""
+msgstr "Ongeldig groepsbereik: {group}"
#: InvenTree/helpers.py:651
msgid "No serial numbers found"
@@ -173,7 +173,7 @@ msgstr "Geen serienummers gevonden"
#: InvenTree/helpers.py:656
msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})"
-msgstr ""
+msgstr "Hoeveelheid van unieke serienummers ({s}) moet overeenkomen met de hoeveelheid ({q})"
#: InvenTree/helpers.py:774
msgid "Remove HTML tags from this value"
@@ -213,7 +213,7 @@ msgstr "Opgegeven URL is geen geldig afbeeldingsbestand"
#: InvenTree/locales.py:18
msgid "Arabic"
-msgstr ""
+msgstr "Arabisch"
#: InvenTree/locales.py:19
msgid "Bulgarian"
@@ -249,7 +249,7 @@ msgstr "Spaans (Mexicaans)"
#: InvenTree/locales.py:27
msgid "Estonian"
-msgstr ""
+msgstr "Estlands"
#: InvenTree/locales.py:28
msgid "Farsi / Persian"
@@ -269,7 +269,7 @@ msgstr "Hebreeuws"
#: InvenTree/locales.py:32
msgid "Hindi"
-msgstr ""
+msgstr "Hindi"
#: InvenTree/locales.py:33
msgid "Hungarian"
@@ -289,7 +289,7 @@ msgstr "Koreaans"
#: InvenTree/locales.py:37
msgid "Latvian"
-msgstr ""
+msgstr "Lets"
#: InvenTree/locales.py:38
msgid "Dutch"
@@ -313,7 +313,7 @@ msgstr "Portugees (Braziliaans)"
#: InvenTree/locales.py:43
msgid "Romanian"
-msgstr ""
+msgstr "Roemeens"
#: InvenTree/locales.py:44
msgid "Russian"
@@ -321,7 +321,7 @@ msgstr "Russisch"
#: InvenTree/locales.py:45
msgid "Slovak"
-msgstr ""
+msgstr "Slowaaks"
#: InvenTree/locales.py:46
msgid "Slovenian"
@@ -345,7 +345,7 @@ msgstr "Turks"
#: InvenTree/locales.py:51
msgid "Ukrainian"
-msgstr ""
+msgstr "Oekraïnes"
#: InvenTree/locales.py:52
msgid "Vietnamese"
@@ -362,18 +362,18 @@ msgstr "Chinees (traditioneel)"
#: InvenTree/magic_login.py:28
#, python-brace-format
msgid "[{site_name}] Log in to the app"
-msgstr ""
+msgstr "[{site_name}] Log in bij de app"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
msgid "Email"
-msgstr ""
+msgstr "E-mail"
#: InvenTree/models.py:103
msgid "Error running plugin validation"
-msgstr ""
+msgstr "Fout bij uitvoeren plug-in validatie"
#: InvenTree/models.py:172
msgid "Metadata must be a python dict object"
@@ -381,7 +381,7 @@ msgstr "Metadata moeten een python dict object zijn"
#: InvenTree/models.py:178
msgid "Plugin Metadata"
-msgstr ""
+msgstr "Plug-in metadata"
#: InvenTree/models.py:179
msgid "JSON metadata field, for use by external plugins"
@@ -419,9 +419,9 @@ msgstr "Dubbele namen kunnen niet bestaan onder hetzelfde bovenliggende object"
msgid "Invalid choice"
msgstr "Ongeldige keuze"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Naam"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Serverfout"
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:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Moet een geldig nummer zijn"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -534,45 +534,45 @@ msgstr "Selecteer valuta uit beschikbare opties"
#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33
msgid "Username"
-msgstr ""
+msgstr "Gebruikersnaam"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
-msgstr ""
+msgstr "Voornaam :"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
-msgstr ""
+msgstr "Voornaam van de gebruiker"
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
-msgstr ""
+msgstr "Achternaam"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
-msgstr ""
+msgstr "Achternaam van de gebruiker"
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
-msgstr ""
+msgstr "E-mailadres van de gebruiker"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
-msgstr ""
+msgstr "Medewerkers"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
-msgstr ""
+msgstr "Heeft deze gebruiker medewerker machtigingen"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
-msgstr ""
+msgstr "Administrator "
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
-msgstr ""
+msgstr "Is deze gebruiker een administrator "
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr "Actief"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
-msgstr ""
+msgstr "Is dit gebruikersaccount actief"
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
-msgstr ""
+msgstr "Je bent niet bevoegd om deze gebruikersrol te wijzigen."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
-msgstr ""
+msgstr "Alleen administrators kunnen nieuwe gebruikers aanmaken"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
-msgstr ""
+msgstr "Je account is aangemaakt."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
-msgstr ""
+msgstr "Gebruik de wachtwoordreset functie om in te loggen"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
-msgstr ""
+msgstr "Welkom bij InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Ongeldige waarde"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Data bestand"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Selecteer een bestand om te uploaden"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Niet ondersteund bestandstype"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Bestand is te groot"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Geen kolommen gevonden in het bestand"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Geen data rijen gevonden in dit bestand"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Geen data rijen opgegeven"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Geen gegevenskolommen opgegeven"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Verplichte kolom ontbreekt: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Dubbele kolom: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
-msgstr ""
+msgstr "Externe afbeelding"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "URL van extern afbeeldingsbestand"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "Afbeeldingen van externe URL downloaden is niet ingeschakeld"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Achtergrondwerker check is gefaald"
@@ -681,7 +681,7 @@ msgstr "InvenTree gezondsheidschecks mislukt"
#: InvenTree/templatetags/inventree_extras.py:184
msgid "Unknown database"
-msgstr ""
+msgstr "Onbekende database"
#: InvenTree/validators.py:32
msgid "Invalid physical unit"
@@ -735,14 +735,14 @@ msgstr "Bovenliggende Productie"
#: build/api.py:59
msgid "Ancestor Build"
-msgstr ""
+msgstr "Voorouderlijke bouw"
#: build/api.py:78 order/api.py:92 templates/js/translated/table_filters.js:101
#: templates/js/translated/table_filters.js:549
#: templates/js/translated/table_filters.js:633
#: templates/js/translated/table_filters.js:674
msgid "Assigned to me"
-msgstr ""
+msgstr "Toegewezen aan mij"
#: build/api.py:95 build/templates/build/build_base.html:205
#: build/templates/build/detail.html:115
@@ -753,13 +753,13 @@ msgstr "Uitgegeven door"
#: build/api.py:114
msgid "Assigned To"
-msgstr ""
+msgstr "Toegewezen aan"
#: build/api.py:275
msgid "Build must be cancelled before it can be deleted"
msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd"
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd"
msgid "Consumable"
msgstr "Verbruiksartikelen"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "Optioneel"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -793,7 +793,7 @@ msgstr "Gevolgd"
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:779
msgid "Testable"
-msgstr ""
+msgstr "Testbaar"
#: build/api.py:325 part/admin.py:144 templates/js/translated/build.js:1920
#: templates/js/translated/build.js:2823
@@ -816,7 +816,7 @@ msgstr "Toegewezen"
msgid "Available"
msgstr "Beschikbaar"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Beschikbaar"
msgid "Build Order"
msgstr "Productieorder"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -838,7 +838,7 @@ msgstr "Productieorders"
#: build/models.py:136
msgid "Assembly BOM has not been validated"
-msgstr ""
+msgstr "Assemblage stuklijst is niet gevalideerd"
#: build/models.py:143
msgid "Build order cannot be created for an inactive part"
@@ -866,7 +866,7 @@ msgstr "Productieorderreferentie"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "Productieorder waar deze productie aan is toegewezen"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr "Gebruiker of groep verantwoordelijk voor deze bouwopdracht"
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Externe Link"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Link naar externe URL"
@@ -1110,7 +1110,7 @@ msgstr "Productieorder {build} is voltooid"
msgid "A build order has been completed"
msgstr "Een productieorder is voltooid"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "Geen productie uitvoer opgegeven"
@@ -1122,37 +1122,37 @@ msgstr "Productie uitvoer is al voltooid"
msgid "Build output does not match Build Order"
msgstr "Productuitvoer komt niet overeen met de Productieorder"
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "Hoeveelheid moet groter zijn dan nul"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr "Hoeveelheid kan niet groter zijn dan aantal"
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr "Bouw object"
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr "Bouw object"
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr "Bouw object"
msgid "Quantity"
msgstr "Hoeveelheid"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr "Vereiste hoeveelheid voor bouwopdracht"
-#: build/models.py:1586
+#: build/models.py:1597
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:1595
+#: build/models.py:1606
#, 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:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "Voorraad item is te veel toegewezen"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "Toewijzing hoeveelheid moet groter zijn dan nul"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad"
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel"
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel"
msgid "Stock Item"
msgstr "Voorraadartikel"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Bron voorraadartikel"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Voorraad hoeveelheid toe te wijzen aan productie"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Installeren in"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Bestemming voorraadartikel"
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr "Onderdeel naam"
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "Voer serienummers in voor productieuitvoeren"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1344,7 +1344,7 @@ msgstr "Locatie"
#: build/serializers.py:360
msgid "Stock location for build output"
-msgstr ""
+msgstr "Voorraad locatie voor project uitvoer"
#: build/serializers.py:374
msgid "Auto Allocate Serial Numbers"
@@ -1390,7 +1390,7 @@ msgstr "Locatie van voltooide productieuitvoeren"
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1399,7 +1399,7 @@ msgstr "Locatie van voltooide productieuitvoeren"
#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080
#: templates/js/translated/stock.js:3205
msgid "Status"
-msgstr ""
+msgstr "Status"
#: build/serializers.py:585
msgid "Accept Incomplete Allocation"
@@ -1411,11 +1411,11 @@ msgstr "Voltooi de uitvoer als de voorraad niet volledig is toegewezen"
#: build/serializers.py:698
msgid "Consume Allocated Stock"
-msgstr ""
+msgstr "Toegewezen voorraad gebruiken"
#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
-msgstr ""
+msgstr "Verbruik elke voorraad die al is toegewezen aan deze build"
#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
@@ -1522,7 +1522,7 @@ msgstr "Productieuitvoer moet worden opgegeven voor de toewijzing van gevolgde o
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Productieuitvoer kan niet worden gespecificeerd voor de toewijzing van niet gevolgde onderdelen"
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr "Allocaties voor artikelen moeten worden opgegeven"
@@ -1577,7 +1577,7 @@ msgstr "Fabrikant artikel nummer (MPN)"
#: build/serializers.py:1227 stock/admin.py:53 stock/admin.py:176
#: stock/serializers.py:464
msgid "Location Name"
-msgstr ""
+msgstr "Locatie naam"
#: build/serializers.py:1228
msgid "Build Reference"
@@ -1590,22 +1590,22 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246
#: templates/js/translated/stock.js:2510
msgid "Packaging"
-msgstr ""
+msgstr "Verpakking"
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr "Onderdeel-id"
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1642,11 +1642,11 @@ msgstr "Serienummer"
#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167
#: templates/js/translated/build.js:2519
msgid "Allocated Quantity"
-msgstr ""
+msgstr "Toegewezen hoeveelheid"
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
-msgstr ""
+msgstr "Beschikbare hoeveelheid"
#: build/serializers.py:1327
msgid "Part Category ID"
@@ -1667,13 +1667,13 @@ msgstr "Volgbaar"
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr "Stuklijstartikel"
@@ -1681,10 +1681,10 @@ msgstr "Stuklijstartikel"
#: build/serializers.py:1350 build/templates/build/detail.html:236
#: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130
msgid "Allocated Stock"
-msgstr ""
+msgstr "Toegewezen voorraad"
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr "In bestelling"
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1706,19 +1706,19 @@ msgstr "Beschikbare Voorraad"
#: build/serializers.py:1369
msgid "Available Substitute Stock"
-msgstr ""
+msgstr "Beschikbare vervanging voorraad"
#: build/serializers.py:1370
msgid "Available Variant Stock"
-msgstr ""
+msgstr "Beschikbare varianten voorraad"
#: build/serializers.py:1371
msgid "Total Available Stock"
-msgstr ""
+msgstr "Totaal beschikbare voorraad"
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
-msgstr ""
+msgstr "Externe voorraad"
#: build/status_codes.py:11 generic/states/tests.py:21
#: generic/states/tests.py:131 order/status_codes.py:12
@@ -1745,7 +1745,7 @@ msgstr "Geannuleerd"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Voltooid"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr "Verwijder Productie"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr "Voltooide Uitvoeren"
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr "Toegewezen Onderdelen"
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2000,7 +1997,7 @@ msgstr "Toegewezen Onderdelen"
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:411
msgid "Batch"
-msgstr ""
+msgstr "Batch"
#: build/templates/build/detail.html:133
#: order/templates/order/order_base.html:178
@@ -2067,7 +2064,7 @@ msgstr "Onderdelen bestellen"
#: build/templates/build/detail.html:205
msgid "Available stock has been filtered based on specified source location for this build order"
-msgstr ""
+msgstr "De beschikbare voorraad is gefilterd op basis van de opgegeven bron locatie voor deze build order"
#: build/templates/build/detail.html:215
msgid "Incomplete Build Outputs"
@@ -2148,19 +2145,19 @@ msgstr "Onvolledige Productieuitvoeren"
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "dagen"
@@ -2581,9 +2578,9 @@ msgstr "Kopiëer Categorieparameter Sjablonen"
msgid "Copy category parameter templates when creating a part"
msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel"
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld"
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "Paginagrootte"
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr "Standaard paginagrootte voor PDF rapporten"
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr "Activeer Testrapporten"
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr "Activeer het genereren van testrapporten"
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr "Testrapporten Toevoegen"
-
-#: common/models.py:1716
-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:1722
msgid "Globally Unique Serials"
msgstr "Globaal unieke serienummers"
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr "Serienummers voor voorraaditems moeten globaal uniek zijn"
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr "Serienummers automatisch invullen"
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr "Automatisch invullen van serienummer in formulieren"
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr "Verwijder uitgeputte voorraad"
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
-msgstr ""
+msgstr "Bepaalt standaard gedrag wanneer een voorraadartikel leeg is"
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr "Batchcode Sjabloon"
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr "Sjabloon voor het genereren van standaard batchcodes voor voorraadartikelen"
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr "Verlopen Voorraad"
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr "Verlopen voorraad functionaliteit inschakelen"
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr "Verkoop Verlopen Voorraad"
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr "Verkoop verlopen voorraad toestaan"
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr "Voorraad Vervaltijd"
-#: common/models.py:1763
+#: common/models.py:1749
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:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr "Produceer Verlopen Voorraad"
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr "Sta productie met verlopen voorraad toe"
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr "Voorraad Eigenaar Toezicht"
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr "Eigenaarstoezicht over voorraadlocaties en items inschakelen"
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr "Voorraadlocatie standaard icoon"
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr "Standaard locatie pictogram (leeg betekent geen icoon)"
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr "Geïnstalleerde voorraad items weergeven"
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr "Geïnstalleerde voorraadartikelen in voorraadtabellen tonen"
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
-msgstr ""
+msgstr "Geïnstalleerde voorraad items moeten in de BOM voor het bovenliggende deel bestaan"
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
-msgstr ""
+msgstr "Sta 'Niet op voorraad overschrijving' toe"
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
-msgstr ""
+msgstr "Toestaan dat voorraadartikelen die niet op voorraad zijn worden overgebracht tussen voorraadlocaties"
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr "Productieorderreferentiepatroon"
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr "Vereist patroon voor het genereren van het Bouworderreferentieveld"
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr "Retourorders inschakelen"
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr "Retourorder functionaliteit inschakelen in de gebruikersinterface"
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr "Retourorder referentie patroon"
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr "Bewerk voltooide retourorders"
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr "Bewerken van retourorders toestaan nadat deze zijn voltooid"
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr "Verkooporderreferentiepatroon"
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr "Vereist patroon voor het genereren van het Verkooporderreferentieveld"
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr "Standaard Verzending Verkooporder"
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr "Aanmaken standaard verzending bij verkooporders inschakelen"
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr "Bewerk voltooide verkooporders"
-#: common/models.py:1910
+#: common/models.py:1896
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:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr "Inkooporderreferentiepatroon"
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Vereist patroon voor het genereren van het Inkooporderreferentieveld"
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr "Bewerk voltooide verkooporders"
-#: common/models.py:1940
+#: common/models.py:1926
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:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr "Wachtwoord vergeten functie inschakelen"
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr "Wachtwoord vergeten functie inschakelen op de inlogpagina's"
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr "Registratie inschakelen"
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr "Zelfregistratie voor gebruikers op de inlogpagina's inschakelen"
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr "SSO inschakelen"
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr "SSO inschakelen op de inlogpagina's"
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr "Schakel gebruikersregistratie met SSO in"
-#: common/models.py:1975
+#: common/models.py:1961
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:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "E-mailadres verplicht"
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr "Vereis gebruiker om e-mailadres te registreren bij aanmelding"
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr "SSO-gebruikers automatisch invullen"
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Gebruikersdetails van SSO-accountgegevens automatisch invullen"
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr "E-mail twee keer"
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr "Bij inschrijving gebruikers twee keer om hun e-mail vragen"
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr "Wachtwoord tweemaal"
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr "Laat gebruikers twee keer om hun wachtwoord vragen tijdens het aanmelden"
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr "Toegestane domeinen"
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Inschrijven beperken tot bepaalde domeinen (komma-gescheiden, beginnend met @)"
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr "Groep bij aanmelding"
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr "MFA afdwingen"
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr "Gebruikers moeten multifactor-beveiliging gebruiken."
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr "Controleer plugins bij het opstarten"
-#: common/models.py:2063
+#: common/models.py:2049
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:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr "Activeer URL-integratie"
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr "Plugins toestaan om URL-routes toe te voegen"
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr "Activeer navigatie integratie"
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr "Plugins toestaan om te integreren in navigatie"
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr "Activeer app integratie"
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr "Activeer plug-ins om apps toe te voegen"
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr "Activeer planning integratie"
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr "Activeer plugin om periodiek taken uit te voeren"
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr "Activeer evenement integratie"
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr "Activeer plugin om op interne evenementen te reageren"
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr "Activeer project codes"
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr "Activeer project codes voor het bijhouden van projecten"
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr "Voorraadcontrole functionaliteit"
-#: common/models.py:2121
+#: common/models.py:2114
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:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr "Externe locaties uitsluiten"
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "Voorraadartikelen op externe locaties uitsluiten van voorraadberekeningen"
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr "Automatische Voorraadcontrole Periode"
-#: common/models.py:2137
+#: common/models.py:2130
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:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr "Rapport Verwijdering Interval"
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr "Voorraadrapportage zal worden verwijderd na het opgegeven aantal dagen"
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig"
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr "Inactieve Onderdelen Verbergen"
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr "Verberg inactieve delen bij items op de homepage"
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr "Toon geabonneerde onderdelen"
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr "Toon geabonneerde onderdelen op de homepage"
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr "Toon geabonneerde categorieën"
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr "Toon geabonneerde onderdeel categorieën op de startpagina"
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr "Toon laatste onderdelen"
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr "Toon laatste onderdelen op de startpagina"
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr "Laat BOMs zien die wachten op validatie op de startpagina"
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr "Toon recente voorraadwijzigingen"
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr "Toon recent aangepaste voorraadartikelen op de startpagina"
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr "Toon lage voorraad"
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr "Toon lage voorraad van artikelen op de startpagina"
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr "Toon lege voorraad"
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr "Toon lege voorraad van artikelen op de startpagina"
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr "Toon benodigde voorraad"
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr "Toon benodigde voorraad van artikelen voor productie op de startpagina"
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr "Toon verlopen voorraad"
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr "Toon verlopen voorraad van artikelen op de startpagina"
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr "Toon verouderde voorraad"
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr "Toon verouderde voorraad van artikelen op de startpagina"
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr "Toon openstaande producties"
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr "Toon openstaande producties op de startpagina"
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr "Toon achterstallige productie"
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr "Toon achterstallige producties op de startpagina"
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr "Toon uitstaande PO's"
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr "Toon uitstaande PO's op de startpagina"
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr "Toon achterstallige PO's"
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr "Toon achterstallige PO's op de startpagina"
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr "Toon uitstaande SO's"
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr "Toon uitstaande SO's op de startpagina"
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr "Toon achterstallige SO's"
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr "Toon achterstallige SO's op de startpagina"
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr "Toon in behandeling SO verzendingen"
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr "Toon in behandeling zijnde SO verzendingen op de startpagina"
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr "Nieuws tonen"
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr "Nieuws op de startpagina weergeven"
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr "Inline labelweergave"
-#: common/models.py:2332
+#: common/models.py:2333
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:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr "Standaard label printer"
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr "Instellen welke label printer standaard moet worden geselecteerd"
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr "Inline rapport weergeven"
-#: common/models.py:2348
+#: common/models.py:2349
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:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr "Zoek Onderdelen"
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr "Onderdelen weergeven in zoekscherm"
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr "Zoek leveranciersonderdelen"
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr "Leveranciersonderdelen weergeven in zoekscherm"
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr "Fabrikant onderdelen zoeken"
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr "Fabrikant onderdelen weergeven in zoekscherm"
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr "Inactieve Onderdelen Verbergen"
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr "Inactieve verkooporders weglaten in het zoekvenster"
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr "Zoek categorieën"
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr "Toon onderdeelcategorieën in zoekvenster"
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr "Zoek in Voorraad"
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr "Toon voorraad items in zoekvenster"
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr "Verberg niet beschikbare voorraad items"
-#: common/models.py:2392
+#: common/models.py:2393
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:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr "Locaties doorzoeken"
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr "Toon voorraadlocaties in zoekvenster"
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr "Zoek bedrijven"
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr "Toon bedrijven in zoekvenster"
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr "Zoek Bouworders"
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr "Toon bouworders in zoekvenster"
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr "Inkooporders Zoeken"
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr "Toon inkooporders in het zoekvenster"
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr "Inactieve Inkooporders Weglaten"
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Inactieve inkooporders weglaten in het zoekvenster"
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr "Verkooporders zoeken"
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr "Toon verkooporders in het zoekvenster"
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr "Inactieve Verkooporders Weglaten"
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr "Inactieve verkooporders weglaten in het zoekvenster"
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr "Zoek retourorders"
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr "Toon bouworders in zoekvenster"
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr "Inactieve retourbestellingen weglaten"
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr "Inactieve retourorders uitsluiten in zoekvenster"
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr "Zoekvoorbeeld resultaten"
-#: common/models.py:2460
+#: common/models.py:2461
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:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr "Regex zoeken"
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr "Schakel reguliere expressies in zoekopdrachten in"
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr "Hele woorden zoeken"
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr "Zoekopdrachten geven resultaat voor hele woord overeenkomsten"
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr "Toon hoeveelheid in formulieren"
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr "Hoeveelheid beschikbare onderdelen in sommige formulieren weergeven"
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr "Escape-toets sluit formulieren"
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr "Gebruik de Escape-toets om standaard formulieren te sluiten"
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr "Vaste navigatiebalk"
-#: common/models.py:2491
+#: common/models.py:2492
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:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr "Datum formaat"
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr "Voorkeursindeling voor weergave van datums"
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Onderdeel planning"
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr "Toon informatie voor het plannen van onderdelen"
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Voorraadcontrole onderdeel"
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr "Toon voorraadinformatie van onderdeel (als voorraadcontrole functionaliteit is ingeschakeld)"
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr "Tabel tekenreekslengte"
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr "Foutrapportages ontvangen"
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr "Meldingen ontvangen van systeemfouten"
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Gebruiker"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr "Prijs"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr "Eindpunt"
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr "Eindpunt waarop deze webhook wordt ontvangen"
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr "Naam van deze webhook"
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr "Is deze webhook actief"
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr "Token voor toegang"
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr "Geheim"
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr "Gedeeld geheim voor HMAC"
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr "Bericht ID"
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr "Koptekst"
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr "Koptekst van dit bericht"
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr "Berichtinhoud"
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr "Inhoud van dit bericht"
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr "Aan gewerkt"
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Titel"
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3851,219 +3848,219 @@ msgstr "Titel"
#: templates/js/translated/sales_order.js:1092
#: templates/js/translated/sales_order.js:2023
msgid "Link"
-msgstr ""
+msgstr "Koppeling"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr "Gepubliceerd"
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Samenvatting"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr "Gelezen"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "Afbeelding"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr "Afbeelding"
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "Symbool"
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr "Definitie"
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Bijlage"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Ontbrekend bestand"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Externe link ontbreekt"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Bestand als bijlage selecteren"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Opmerking"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
-msgstr ""
+msgstr "Label"
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Bestandsnaam"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr "Fabrikant onderdeel"
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Basis onderdeel"
@@ -4463,8 +4460,8 @@ msgstr "Onderdeel selecteren"
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr "Fabrikant selecteren"
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr "Parameternaam"
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr "Parameterwaarde"
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr "Parameter eenheden"
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderd
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,9 +4567,9 @@ msgstr "Leverancier"
msgid "Select supplier"
msgstr "Leverancier selecteren"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
-msgstr ""
+msgstr "Voorraad beheers eenheid voor leveranciers"
#: company/models.py:799
msgid "Is this supplier part active?"
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr "Opmerking"
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr "basisprijs"
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimale kosten (bijv. voorraadkosten)"
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr "meerdere"
@@ -4661,12 +4658,12 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
msgid "In Stock"
-msgstr ""
+msgstr "Op voorraad"
#: company/templates/company/company_base.html:16
#: part/templates/part/part_base.html:146
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4810,7 +4807,7 @@ msgstr "Nieuw fabrikant onderdeel"
#: company/templates/company/detail.html:65
msgid "Supplier Stock"
-msgstr ""
+msgstr "Leverancier voorraad"
#: company/templates/company/detail.html:75
#: company/templates/company/sidebar.html:12
@@ -4861,7 +4858,7 @@ msgstr "Nieuwe Verkooporder"
#: company/templates/company/detail.html:126
msgid "Assigned Stock"
-msgstr ""
+msgstr "Toegewezen voorraad"
#: company/templates/company/detail.html:142
#: company/templates/company/sidebar.html:29
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr "Geen leveranciersinformatie beschikbaar"
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5040,7 +5037,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:206
msgid "Supplier Part Stock"
-msgstr ""
+msgstr "Voorraad leverancier"
#: company/templates/company/supplier_part.html:209
#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5490,7 +5487,7 @@ msgstr "Inkooporder"
#: templates/js/translated/return_order.js:280
#: templates/js/translated/stock.js:3026
msgid "Return Order"
-msgstr ""
+msgstr "Retour bestelling"
#: order/models.py:91
msgid "Total price for this order"
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr "Aantal ontvangen artikelen"
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr "Inkoopprijs"
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr "Gebruiker die deze zending gecontroleerd heeft"
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr "Zending"
@@ -5912,7 +5909,7 @@ msgstr ""
#: order/serializers.py:290 stock/admin.py:196
msgid "Supplier Name"
-msgstr ""
+msgstr "Leveranciers Naam"
#: order/serializers.py:332
msgid "Order cannot be cancelled"
@@ -5982,14 +5979,14 @@ msgstr "Artikel"
msgid "Line item does not match purchase order"
msgstr "Artikelregel komt niet overeen met inkooporder"
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr "Selecteer bestemmingslocatie voor ontvangen artikelen"
#: order/serializers.py:672 templates/js/translated/purchase_order.js:1130
#: templates/js/translated/stock.js:1200
msgid "Enter batch code for incoming stock items"
-msgstr ""
+msgstr "Voer batch code in voor inkomende voorraad items"
#: order/serializers.py:680 templates/js/translated/purchase_order.js:1155
msgid "Enter serial numbers for incoming stock items"
@@ -5997,11 +5994,11 @@ msgstr "Voer serienummers in voor inkomende voorraadartikelen"
#: order/serializers.py:692
msgid "Override packaging information for incoming stock items"
-msgstr ""
+msgstr "Overschrijf verpakkingsinformatie voor binnenkomende voorraad"
#: order/serializers.py:700
msgid "Additional note for incoming stock items"
-msgstr ""
+msgstr "Extra opmerking voor inkomende voorraad items"
#: order/serializers.py:707 templates/js/translated/barcode.js:52
msgid "Barcode"
@@ -6019,7 +6016,7 @@ msgstr "Streepjescode is al in gebruik"
msgid "An integer quantity must be provided for trackable parts"
msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen"
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr "Artikelen moeten worden opgegeven"
@@ -6051,39 +6048,39 @@ msgstr "Hoeveelheid moet positief zijn"
msgid "Enter serial numbers to allocate"
msgstr "Voer serienummers in om toe te wijzen"
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr "Verzending is al verzonden"
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr "Zending is niet gekoppeld aan deze bestelling"
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr "Geen overeenkomst gevonden voor de volgende serienummers"
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
-msgstr "De volgende serienummers zijn al toegewezen"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
+msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,13 +6507,13 @@ 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:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
#: templates/js/translated/stock.js:2122
msgid "IPN"
-msgstr ""
+msgstr "IPN"
#: part/admin.py:50 part/models.py:1053 part/templates/part/part_base.html:293
#: report/models.py:161 templates/js/translated/part.js:1238
@@ -6535,12 +6532,12 @@ msgstr ""
#: part/admin.py:63 part/admin.py:302 part/stocktake.py:221
msgid "Category ID"
-msgstr ""
+msgstr "Categorie ID"
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
-msgstr ""
+msgstr "Categorie naam"
#: part/admin.py:71 part/admin.py:316
msgid "Default Location ID"
@@ -6556,35 +6553,35 @@ msgstr ""
#: part/admin.py:84 part/models.py:1150 part/templates/part/part_base.html:203
msgid "Minimum Stock"
-msgstr ""
+msgstr "Minimum voorraad"
#: part/admin.py:138 part/templates/part/part_sidebar.html:27
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
-msgstr ""
+msgstr "Bouwen"
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216
msgid "Parent ID"
-msgstr ""
+msgstr "Bovenliggende ID"
#: part/admin.py:312 part/admin.py:394 stock/admin.py:61
msgid "Parent Name"
-msgstr ""
+msgstr "Bovenliggende naam"
#: part/admin.py:320 part/templates/part/category.html:85
#: part/templates/part/category.html:98
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6641,7 +6638,7 @@ msgstr ""
#: part/api.py:123 stock/api.py:310
msgid "Depth"
-msgstr ""
+msgstr "Diepte"
#: part/api.py:123
msgid "Filter by category depth"
@@ -6649,7 +6646,7 @@ msgstr ""
#: part/api.py:141 stock/api.py:328
msgid "Top Level"
-msgstr ""
+msgstr "Hoogste niveau"
#: part/api.py:143
msgid "Filter by top-level categories"
@@ -6657,7 +6654,7 @@ msgstr ""
#: part/api.py:156 stock/api.py:343
msgid "Cascade"
-msgstr ""
+msgstr "Stapelen"
#: part/api.py:158
msgid "Include sub-categories in filtered results"
@@ -6719,14 +6716,14 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
#: templates/js/translated/part.js:2383
msgid "Category"
-msgstr ""
+msgstr "Categorie"
#: part/api.py:1754
msgid "Assembly part is testable"
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr "Standaard locatie"
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Totale Voorraad"
@@ -6755,7 +6752,7 @@ msgstr "Totale Voorraad"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Onderdeel Categorie"
@@ -6775,7 +6772,7 @@ msgstr "Standaard locatie voor onderdelen in deze categorie"
#: templates/js/translated/table_filters.js:246
#: templates/js/translated/table_filters.js:290
msgid "Structural"
-msgstr ""
+msgstr "Structureel"
#: part/models.py:116
msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories."
@@ -6792,12 +6789,12 @@ msgstr ""
#: part/models.py:132 stock/models.py:95 stock/models.py:174
#: templates/InvenTree/settings/settings_staff_js.html:445
msgid "Icon"
-msgstr ""
+msgstr "Pictogram"
#: part/models.py:133 part/serializers.py:143 part/serializers.py:161
#: stock/models.py:175
msgid "Icon (optional)"
-msgstr ""
+msgstr "Pictogram (optioneel)"
#: part/models.py:179
msgid "You cannot make this part category structural because some parts are already assigned to it!"
@@ -6860,7 +6857,7 @@ msgstr ""
#: part/models.py:826
msgid "Stock item with this serial number already exists"
-msgstr ""
+msgstr "Voorraadartikel met dit serienummer bestaat al"
#: part/models.py:927
msgid "Duplicate IPN not allowed in part settings"
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr "Onderdeel naam"
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr "Onderdeel Categorie"
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -6936,11 +6933,11 @@ msgstr ""
#: part/models.py:1142
msgid "Expiry time (in days) for stock items of this part"
-msgstr ""
+msgstr "Verlooptijd (in dagen) voor voorraadartikelen van dit deel"
#: part/models.py:1151
msgid "Minimum allowed stock level"
-msgstr ""
+msgstr "Minimaal toegelaten stock niveau"
#: part/models.py:1160
msgid "Units of measure for this part"
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
-msgstr ""
+msgstr "Laatste voorraadcontrole"
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr "Onderdeel voor voorraadcontrole"
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
-msgstr ""
+msgstr "Aantal individuele voorraadvermeldingen op het moment van voorraadcontrole"
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
-msgstr ""
+msgstr "Totale voorraad op het moment van voorraadcontrole"
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr "Datum"
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
-msgstr ""
+msgstr "Datum waarop voorraad werd uitgevoerd"
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
-msgstr ""
+msgstr "Gebruiker die deze voorraad heeft uitgevoerd"
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
-msgstr ""
+msgstr "Minimale voorraadprijs"
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
-msgstr ""
+msgstr "Geschatte minimum kosten van de voorraad op de hand"
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
-msgstr ""
+msgstr "Maximale voorraadkosten"
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
-msgstr ""
+msgstr "Geschatte maximale kosten van de hand van voorraad"
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
-msgstr ""
+msgstr "Bestand voorraadcontrole (intern gegenereerd)"
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr "Aantal onderdelen"
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
-msgstr ""
+msgstr "Aantal door voorraadopname gedekte onderdelen"
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
-msgstr ""
+msgstr "Gebruiker die om dit voorraadrapport heeft gevraagd"
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
-msgstr ""
+msgstr "Test sjablonen kunnen alleen worden gemaakt voor testbare onderdelen"
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr "Ingeschakeld"
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr "De template van de parameter moet uniek zijn"
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr "Parameternaam"
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr "Parameterwaarde"
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr "Standaard Parameter Waarde"
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
-msgstr ""
+msgstr "Voorraaditems voor variant onderdelen kunnen worden gebruikt voor dit BOM artikel"
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
-msgstr ""
+msgstr "Hoeveelheid moet een geheel getal zijn voor trackable onderdelen"
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7565,365 +7562,365 @@ msgstr ""
#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:623
msgid "Purchase currency of this stock item"
-msgstr ""
+msgstr "Inkooporder voor dit voorraadartikel"
#: part/serializers.py:291
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr "Geen onderdelen geselecteerd"
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr "Afbeelding kopiëren"
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr "Afbeelding kopiëren van het oorspronkelijke onderdeel"
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr "Parameters kopiëren"
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr "Parameter data kopiëren van het originele onderdeel"
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
-msgstr ""
+msgstr "Eerste voorraad hoeveelheid"
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
-msgstr ""
+msgstr "Specificeer de initiële voorraad hoeveelheid voor dit onderdeel. Als het aantal nul is, wordt er geen voorraad toegevoegd."
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
-msgstr ""
+msgstr "Eerste voorraad locatie"
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
-msgstr ""
+msgstr "Specificeer locatie van de eerste voorraad voor dit onderdeel"
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
-msgstr ""
+msgstr "Niet toegewezen voorraad"
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
-msgstr ""
+msgstr "Variant voorraad"
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
-msgstr ""
+msgstr "Eerste voorraad"
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
-msgstr ""
+msgstr "Maak onderdeel met eerste voorraad"
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
-msgstr ""
+msgstr "Limiteer de voorraadrapportage tot een bepaald onderdeel en eventuele variant onderdelen"
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
-msgstr ""
+msgstr "Limiteer de voorraadrapportage tot een bepaalde deelcategorie en alle onderliggende categorieën"
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
-msgstr ""
+msgstr "Limiteer de voorraadrapportage tot een bepaalde voorraadlocatie en alle onderliggende locaties"
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
-msgstr ""
+msgstr "Externe voorraad uitsluiten"
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
-msgstr ""
+msgstr "Voorraadartikelen op externe locaties uitsluiten"
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
-msgstr ""
+msgstr "Genereer een bestand met berekende voorraad namen gegevens"
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
-msgstr ""
+msgstr "Bijwerken van de opgegeven onderdelen met berekende voorraad gegevens"
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
-msgstr ""
+msgstr "Voorraadcontrole functionaliteit is niet ingeschakeld"
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
-msgstr ""
+msgstr "Inclusief stuklijst BOM items die worden overgenomen van getemplated onderdelen"
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
-msgstr ""
+msgstr "Kopieer vervangende onderdelen bij dubbele stuklijst BOM items"
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
-msgstr ""
+msgstr "Verwijder bestaande stuklijst BOM"
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
-msgstr ""
+msgstr "Verwijder bestaande stuklijst BOM items voor het uploaden"
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr "Ongeldige hoeveelheid"
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
-msgstr ""
+msgstr "Minstens één stuklijst BOM artikel is vereist"
#: part/stocktake.py:224 templates/js/translated/part.js:1073
#: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884
#: templates/js/translated/purchase_order.js:2154
msgid "Total Quantity"
-msgstr ""
+msgstr "Totale hoeveelheid"
#: part/stocktake.py:225
msgid "Total Cost Min"
-msgstr ""
+msgstr "Totale kosten Min"
#: part/stocktake.py:226
msgid "Total Cost Max"
-msgstr ""
+msgstr "Totale kosten Max"
#: part/stocktake.py:284
msgid "Stocktake Report Available"
-msgstr ""
+msgstr "Voorraadcontrole rapport beschikbaar"
#: part/stocktake.py:285
msgid "A new stocktake report is available for download"
-msgstr ""
+msgstr "Een nieuwe voorraadrapportage is beschikbaar voor download"
#: part/tasks.py:37
msgid "Low stock notification"
-msgstr ""
+msgstr "Lage voorraad melding"
#: part/tasks.py:39
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
-msgstr ""
+msgstr "De beschikbare voorraad voor {part.name} is onder het ingestelde minimumniveau gedaald"
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
@@ -7931,20 +7928,20 @@ msgstr "U heeft geen toestemming om de stuklijst te bewerken."
#: part/templates/part/bom.html:15
msgid "The BOM this part has been changed, and must be validated"
-msgstr ""
+msgstr "De stuklijst BOM dit onderdeel is gewijzigd en moet worden gevalideerd"
#: part/templates/part/bom.html:17
#, python-format
msgid "This BOM was last checked by %(checker)s on %(check_date)s"
-msgstr ""
+msgstr "Deze stuklijst BOM is laatst gecontroleerd door %(checker)s op %(check_date)s"
#: part/templates/part/bom.html:21
msgid "This BOM has not been validated."
-msgstr ""
+msgstr "Deze stuklijst BOM is niet gevalideerd."
#: part/templates/part/category.html:32
msgid "Perform stocktake for this part category"
-msgstr ""
+msgstr "Voorraadcontrole uitvoeren voor deze deelcategorie"
#: part/templates/part/category.html:38 part/templates/part/category.html:42
msgid "You are subscribed to notifications for this category"
@@ -7988,7 +7985,7 @@ msgstr ""
#: part/templates/part/category.html:163 templates/js/translated/bom.js:444
msgid "New Part"
-msgstr ""
+msgstr "Nieuw onderdeel"
#: part/templates/part/category.html:189
#: templates/InvenTree/settings/part_parameters.html:7
@@ -8030,7 +8027,7 @@ msgstr ""
#: part/templates/part/detail.html:20
msgid "Part Stock"
-msgstr ""
+msgstr "Voorraad onderdeel"
#: part/templates/part/detail.html:44
msgid "Refresh scheduling data"
@@ -8043,14 +8040,14 @@ msgstr ""
#: part/templates/part/detail.html:66
msgid "Add stocktake information"
-msgstr ""
+msgstr "Voorraadinformatie toevoegen"
#: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50
#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30
#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/stock.js:2302 users/models.py:204
msgid "Stocktake"
-msgstr ""
+msgstr "Voorraadcontrole"
#: part/templates/part/detail.html:83
msgid "Part Test Templates"
@@ -8107,28 +8104,28 @@ msgstr ""
#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340
msgid "Export BOM"
-msgstr ""
+msgstr "Exporteren van stuklijst BOM"
#: part/templates/part/detail.html:282
msgid "Print BOM Report"
-msgstr ""
+msgstr "Print stuklijst BOM Rapport"
#: part/templates/part/detail.html:288
msgid "BOM actions"
-msgstr ""
+msgstr "Stuklijst BOM acties"
#: part/templates/part/detail.html:292
msgid "Upload BOM"
-msgstr ""
+msgstr "Stuklijst BOM uploaden"
#: part/templates/part/detail.html:294
msgid "Validate BOM"
-msgstr ""
+msgstr "Valideren stuklijst BOM"
#: 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 ""
+msgstr "Stuklijst BOM item toevoegen"
#: part/templates/part/detail.html:313
msgid "Assemblies"
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr "Label afdrukken"
@@ -8226,18 +8223,18 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr "Voorraad acties"
#: part/templates/part/part_base.html:70
msgid "Count part stock"
-msgstr ""
+msgstr "Tel voorraad"
#: part/templates/part/part_base.html:76
msgid "Transfer part stock"
-msgstr ""
+msgstr "Voorraad van onderdeel verplaatsen"
#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299
msgid "Part actions"
@@ -8269,7 +8266,7 @@ msgstr "Onderdeel kan gebruikt worden voor assemblages"
#: part/templates/part/part_base.html:131
msgid "Part stock is tracked by serial number"
-msgstr ""
+msgstr "Onderdeel voorraad wordt bijgehouden op basis van serienummer"
#: part/templates/part/part_base.html:135
msgid "Part can be purchased from external suppliers"
@@ -8297,34 +8294,34 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr "Toegewezen aan Productieorder"
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr "Toegewezen aan verkooporders"
#: part/templates/part/part_base.html:307
msgid "Minimum stock level"
-msgstr ""
+msgstr "Minimale voorraad niveau"
#: part/templates/part/part_base.html:338 templates/js/translated/bom.js:1071
#: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463
#: templates/js/translated/pricing.js:391
#: templates/js/translated/pricing.js:1054
msgid "Price Range"
-msgstr ""
+msgstr "Prijs bereik"
#: part/templates/part/part_base.html:368
msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
-msgstr ""
+msgstr "Zoek op serienummer"
#: part/templates/part/part_base.html:460
msgid "Part QR Code"
@@ -8369,7 +8366,7 @@ msgstr ""
#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90
#: part/templates/part/prices.html:250
msgid "BOM Pricing"
-msgstr ""
+msgstr "Stukslijst prijs"
#: part/templates/part/part_pricing.html:66
msgid "Unit Purchase Price"
@@ -8381,7 +8378,7 @@ msgstr ""
#: part/templates/part/part_pricing.html:83
msgid "No BOM pricing available"
-msgstr ""
+msgstr "Geen stuklijst BOM prijs beschikbaar"
#: part/templates/part/part_pricing.html:92
msgid "Internal Price"
@@ -8449,12 +8446,12 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
msgid "Last Updated"
-msgstr ""
+msgstr "Laatst bijgewerkt"
#: part/templates/part/prices.html:37 part/templates/part/prices.html:127
msgid "Price Category"
@@ -8528,48 +8525,48 @@ msgstr ""
#: templates/js/translated/part.js:707 templates/js/translated/part.js:2147
#: templates/js/translated/part.js:2149
msgid "No Stock"
-msgstr ""
+msgstr "Geen voorraad"
#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:120
msgid "Low Stock"
-msgstr ""
+msgstr "Lage voorraad"
#: part/templates/part/upload_bom.html:8
msgid "Return to BOM"
-msgstr ""
+msgstr "Terug naar stuklijst BOM"
#: part/templates/part/upload_bom.html:13
msgid "Upload Bill of Materials"
-msgstr ""
+msgstr "Upload stuklijst"
#: part/templates/part/upload_bom.html:19
msgid "BOM upload requirements"
-msgstr ""
+msgstr "stuklijst BOM upload vereisten"
#: part/templates/part/upload_bom.html:23
#: part/templates/part/upload_bom.html:90
msgid "Upload BOM File"
-msgstr ""
+msgstr "Stuklijst BOM bestand uploaden"
#: part/templates/part/upload_bom.html:29
msgid "Submit BOM Data"
-msgstr ""
+msgstr "Stuklijst BOM gegevens verzenden"
#: part/templates/part/upload_bom.html:37
msgid "Requirements for BOM upload"
-msgstr ""
+msgstr "Vereisten voor stuklijst BOM upload"
#: part/templates/part/upload_bom.html:39
msgid "The BOM file must contain the required named columns as provided in the "
-msgstr ""
+msgstr "Het stuklijst BOM bestand moet de vereiste kolommen met naam en toenaam bevatten in de "
#: part/templates/part/upload_bom.html:39
msgid "BOM Upload Template"
-msgstr ""
+msgstr "Stuklijst BOM Upload Sjabloon"
#: part/templates/part/upload_bom.html:40
msgid "Each part must already exist in the database"
-msgstr ""
+msgstr "Elk onderdeel moet al bestaan in de database"
#: part/templates/part/variant_part.html:9
msgid "Create new part variant"
@@ -8604,7 +8601,7 @@ msgstr "Afbeelding van onderdeel niet gevonden"
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8672,11 +8669,11 @@ msgstr ""
#: plugin/base/barcodes/api.py:550 plugin/base/barcodes/api.py:557
msgid "Barcode does not match an existing stock item"
-msgstr ""
+msgstr "Streepjescode komt niet overeen met een bestaand voorraadartikel"
#: plugin/base/barcodes/api.py:568
msgid "Stock item does not match line item"
-msgstr ""
+msgstr "Voorraad item komt niet overeen met regelitem"
#: plugin/base/barcodes/api.py:592 templates/js/translated/build.js:2783
#: templates/js/translated/sales_order.js:1953
@@ -8685,7 +8682,7 @@ msgstr "Onvoldoende voorraad beschikbaar"
#: plugin/base/barcodes/api.py:601
msgid "Stock item allocated to sales order"
-msgstr ""
+msgstr "Voorraad item toegewezen aan verkooporder"
#: plugin/base/barcodes/api.py:605
msgid "Not enough information"
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr "Bestandsnaam Patroon"
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr "Breedte [mm]"
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr "Label breedte, gespecificeerd in mm"
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr "Hoogte [mm]"
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr "Label hoogte, gespecificeerd in mm"
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9455,13 +9520,13 @@ msgstr ""
#: report/templates/label/stocklocation_qr.html:20
#: templates/allauth_2fa/setup.html:18
msgid "QR Code"
-msgstr ""
+msgstr "QR Code"
#: report/templates/label/part_label_code128.html:31
#: report/templates/label/stocklocation_qr_and_text.html:31
#: templates/qr_code.html:7
msgid "QR code"
-msgstr ""
+msgstr "QR code"
#: report/templates/report/inventree_bill_of_materials_report.html:133
msgid "Materials needed"
@@ -9502,11 +9567,11 @@ msgstr "Totaal"
#: report/templates/report/inventree_stock_location_report.html:97
msgid "Stock location items"
-msgstr ""
+msgstr "Voorraad locatie items"
#: report/templates/report/inventree_test_report.html:21
msgid "Stock Item Test Report"
-msgstr ""
+msgstr "Rapport voorraadcontrole"
#: report/templates/report/inventree_test_report.html:97
msgid "Test Results"
@@ -9515,11 +9580,11 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:102
#: templates/js/translated/stock.js:1580
msgid "Test"
-msgstr ""
+msgstr "Test"
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
-msgstr ""
+msgstr "Resultaat"
#: report/templates/report/inventree_test_report.html:129
msgid "Pass"
@@ -9540,13 +9605,13 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:153
#: stock/serializers.py:606 stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
-msgstr ""
+msgstr "Geïnstalleerde items"
#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162
#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877
#: templates/js/translated/stock.js:3195
msgid "Serial"
-msgstr ""
+msgstr "Serienummer"
#: report/templatetags/report.py:98
msgid "Asset file does not exist"
@@ -9566,141 +9631,141 @@ msgstr ""
#: stock/admin.py:51 stock/admin.py:172
msgid "Location ID"
-msgstr ""
+msgstr "Locatie ID"
#: stock/admin.py:63 stock/templates/stock/location.html:128
#: stock/templates/stock/location.html:134
msgid "Location Path"
-msgstr ""
+msgstr "Locatie pad"
#: stock/admin.py:149
msgid "Stock Item ID"
-msgstr ""
+msgstr "Voorraad item ID"
#: stock/admin.py:168
msgid "Status Code"
-msgstr ""
+msgstr "Status code"
#: stock/admin.py:180
msgid "Supplier Part ID"
-msgstr ""
+msgstr "Leverancier deel ID"
#: stock/admin.py:185
msgid "Supplier Part SKU"
-msgstr ""
+msgstr "Leverancier artikelnummer"
#: stock/admin.py:190
msgid "Supplier ID"
-msgstr ""
+msgstr "Leverancier ID"
#: stock/admin.py:201
msgid "Customer ID"
-msgstr ""
+msgstr "Klant ID"
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
-msgstr ""
+msgstr "Geïnstalleerd in"
#: stock/admin.py:211
msgid "Build ID"
-msgstr ""
+msgstr "Build ID"
#: stock/admin.py:221
msgid "Sales Order ID"
-msgstr ""
+msgstr "Verkooporder ID"
#: stock/admin.py:226
msgid "Purchase Order ID"
-msgstr ""
+msgstr "Inkooporder ID"
#: stock/admin.py:241
msgid "Review Needed"
-msgstr ""
+msgstr "Beoordeling nodig"
#: stock/admin.py:246
msgid "Delete on Deplete"
-msgstr ""
+msgstr "Verwijderen na uitzetten"
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
-msgstr ""
+msgstr "Vervaldatum"
#: stock/api.py:310
msgid "Filter by location depth"
-msgstr ""
+msgstr "Filter op locatie diepte"
#: stock/api.py:330
msgid "Filter by top-level locations"
-msgstr ""
+msgstr "Filter op topniveau locaties"
#: stock/api.py:345
msgid "Include sub-locations in filtered results"
-msgstr ""
+msgstr "Inclusief sublocaties in gefilterde resultaten"
#: stock/api.py:366 stock/serializers.py:1193
msgid "Parent Location"
-msgstr ""
+msgstr "Bovenliggende locatie"
#: stock/api.py:367
msgid "Filter by parent location"
-msgstr ""
+msgstr "Filter op bovenliggende locatie"
#: stock/api.py:614 templates/js/translated/table_filters.js:434
msgid "External Location"
-msgstr ""
+msgstr "Externe locatie"
#: stock/api.py:802
msgid "Part Tree"
-msgstr ""
+msgstr "Boomstructuur onderdeel"
#: stock/api.py:832
msgid "Expiry date before"
-msgstr ""
+msgstr "Vervaldatum voor"
#: stock/api.py:836
msgid "Expiry date after"
-msgstr ""
+msgstr "Vervaldatum na"
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
-msgstr ""
+msgstr "Verouderd"
#: stock/api.py:926
msgid "Quantity is required"
-msgstr ""
+msgstr "Hoeveelheid is vereist"
#: stock/api.py:932
msgid "Valid part must be supplied"
-msgstr ""
+msgstr "Geldig onderdeel moet worden opgegeven"
#: stock/api.py:963
msgid "The given supplier part does not exist"
-msgstr ""
+msgstr "Het opgegeven leveranciers onderdeel bestaat niet"
#: stock/api.py:973
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
-msgstr ""
+msgstr "Het leveranciersdeel heeft een pakketgrootte gedefinieerd, maar vlag use_pack_size niet ingesteld"
#: stock/api.py:998
msgid "Serial numbers cannot be supplied for a non-trackable part"
-msgstr ""
+msgstr "Serienummers kunnen niet worden meegeleverd voor een niet traceerbaar onderdeel"
#: stock/models.py:69
msgid "Stock Location type"
-msgstr ""
+msgstr "Voorraad locatie soort"
#: stock/models.py:70
msgid "Stock Location types"
-msgstr ""
+msgstr "Voorraad locatie soorten"
#: stock/models.py:96
msgid "Default icon for all locations that have no icon set (optional)"
-msgstr ""
+msgstr "Standaardpictogram voor alle locaties waarvoor geen pictogram is ingesteld (optioneel)"
#: stock/models.py:136 stock/models.py:811
#: stock/templates/stock/location.html:17
@@ -9715,124 +9780,124 @@ msgid "Stock Locations"
msgstr "Voorraadlocaties"
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
-msgstr ""
+msgstr "Eigenaar"
#: stock/models.py:186 stock/models.py:973
msgid "Select Owner"
-msgstr ""
+msgstr "Selecteer eigenaar"
#: stock/models.py:194
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
-msgstr ""
+msgstr "Voorraaditems kunnen niet direct worden geplaatst op een structurele voorraadlocatie, maar kunnen zich op onderliggende locaties bevinden."
#: stock/models.py:201 templates/js/translated/stock.js:2866
#: templates/js/translated/table_filters.js:250
msgid "External"
-msgstr ""
+msgstr "Extern"
#: stock/models.py:202
msgid "This is an external stock location"
-msgstr ""
+msgstr "Dit is een externe voorraadlocatie"
#: stock/models.py:208 templates/js/translated/stock.js:2875
#: templates/js/translated/table_filters.js:253
msgid "Location type"
-msgstr ""
+msgstr "Locatie type"
#: stock/models.py:212
msgid "Stock location type of this location"
-msgstr ""
+msgstr "Voorraad locatie type van deze locatie"
#: stock/models.py:284
msgid "You cannot make this stock location structural because some stock items are already located into it!"
-msgstr ""
+msgstr "U kunt deze voorraadlocatie niet structureel maken omdat sommige voorraadartikelen er al in liggen!"
#: stock/models.py:668
msgid "Stock items cannot be located into structural stock locations!"
-msgstr ""
+msgstr "Voorraaditems kunnen niet worden geplaatst in structurele voorraadlocaties!"
#: stock/models.py:695 stock/serializers.py:487
msgid "Stock item cannot be created for virtual parts"
-msgstr ""
+msgstr "Voorraadartikel kan niet worden aangemaakt voor virtuele onderdelen"
#: stock/models.py:712
#, python-brace-format
msgid "Part type ('{self.supplier_part.part}') must be {self.part}"
-msgstr ""
+msgstr "Onderdeel type ('{self.supplier_part.part}') moet {self.part} zijn"
#: stock/models.py:722 stock/models.py:735
msgid "Quantity must be 1 for item with a serial number"
-msgstr ""
+msgstr "Hoeveelheid moet 1 zijn voor item met een serienummer"
#: stock/models.py:725
msgid "Serial number cannot be set if quantity greater than 1"
-msgstr ""
+msgstr "Serienummer kan niet worden ingesteld als de hoeveelheid groter is dan 1"
#: stock/models.py:747
msgid "Item cannot belong to itself"
-msgstr ""
+msgstr "Item kan niet tot zichzelf behoren"
#: stock/models.py:752
msgid "Item must have a build reference if is_building=True"
-msgstr ""
+msgstr "Item moet een bouw referentie hebben als is_building=True"
#: stock/models.py:765
msgid "Build reference does not point to the same part object"
-msgstr ""
+msgstr "Bouw referentie verwijst niet naar hetzelfde deel object"
#: stock/models.py:781
msgid "Parent Stock Item"
-msgstr ""
+msgstr "Bovenliggend voorraad item"
#: stock/models.py:793
msgid "Base part"
-msgstr ""
+msgstr "Basis onderdeel"
#: stock/models.py:803
msgid "Select a matching supplier part for this stock item"
-msgstr ""
+msgstr "Selecteer een leveranciersdeel voor dit voorraadartikel"
#: stock/models.py:815
msgid "Where is this stock item located?"
-msgstr ""
+msgstr "Waar bevindt zich dit voorraaditem?"
#: stock/models.py:823 stock/serializers.py:1587
msgid "Packaging this stock item is stored in"
-msgstr ""
+msgstr "Het verpakken van dit voorraaditem is opgeslagen in"
#: stock/models.py:834
msgid "Is this item installed in another item?"
-msgstr ""
+msgstr "Is dit item geïnstalleerd in een ander item?"
#: stock/models.py:853
msgid "Serial number for this item"
-msgstr ""
+msgstr "Serienummer van dit item"
#: stock/models.py:867 stock/serializers.py:1570
msgid "Batch code for this stock item"
-msgstr ""
+msgstr "Batch code voor dit voorraaditem"
#: stock/models.py:872
msgid "Stock Quantity"
-msgstr ""
+msgstr "Voorraad hoeveelheid"
#: stock/models.py:882
msgid "Source Build"
-msgstr ""
+msgstr "Bron Bouw"
#: stock/models.py:885
msgid "Build for this stock item"
-msgstr ""
+msgstr "Build voor dit voorraaditem"
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
-msgstr ""
+msgstr "Verbruikt door"
#: stock/models.py:895
msgid "Build order which consumed this stock item"
-msgstr ""
+msgstr "Bestelling bouwen welke dit voorraadartikel heeft verbruikt"
#: stock/models.py:904
msgid "Source Purchase Order"
@@ -9848,52 +9913,52 @@ msgstr "Bestemming Verkooporder"
#: stock/models.py:925
msgid "Expiry date for stock item. Stock will be considered expired after this date"
-msgstr ""
+msgstr "Vervaldatum voor voorraadartikel. Voorraad zal worden beschouwd als verlopen na deze datum"
#: stock/models.py:943
msgid "Delete on deplete"
-msgstr ""
+msgstr "Verwijderen bij leegmaken"
#: stock/models.py:944
msgid "Delete this Stock Item when stock is depleted"
-msgstr ""
+msgstr "Verwijder dit voorraadproduct wanneer de voorraad is leeg"
#: stock/models.py:964
msgid "Single unit purchase price at time of purchase"
-msgstr ""
+msgstr "Enkele eenheidsprijs van de aankoop op het moment van aankoop"
#: stock/models.py:995
msgid "Converted to part"
-msgstr ""
+msgstr "Omgezet tot onderdeel"
#: stock/models.py:1506
msgid "Part is not set as trackable"
-msgstr ""
+msgstr "Onderdeel is niet ingesteld als traceerbaar"
#: stock/models.py:1512
msgid "Quantity must be integer"
-msgstr ""
+msgstr "Hoeveelheid moet heel getal zijn"
#: stock/models.py:1520
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({self.quantity})"
-msgstr ""
+msgstr "Hoeveelheid mag niet hoger zijn dan de beschikbare voorraad ({self.quantity})"
#: stock/models.py:1526
msgid "Serial numbers must be a list of integers"
-msgstr ""
+msgstr "Serienummers moeten een lijst van gehele getallen zijn"
#: stock/models.py:1531
msgid "Quantity does not match serial numbers"
-msgstr ""
+msgstr "Hoeveelheid komt niet overeen met serienummers"
#: stock/models.py:1539 stock/serializers.py:733
msgid "Serial numbers already exist"
-msgstr ""
+msgstr "Serienummers bestaan al"
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
-msgstr ""
+msgstr "Testsjabloon bestaat niet"
#: stock/models.py:1654
msgid "Stock item has been assigned to a sales order"
@@ -9901,262 +9966,262 @@ msgstr "Voorraadartikel is toegewezen aan een verkooporder"
#: stock/models.py:1658
msgid "Stock item is installed in another item"
-msgstr ""
+msgstr "Voorraad item is geïnstalleerd in een ander item"
#: stock/models.py:1661
msgid "Stock item contains other items"
-msgstr ""
+msgstr "Voorraadartikel bevat andere producten"
#: stock/models.py:1664
msgid "Stock item has been assigned to a customer"
-msgstr ""
+msgstr "Voorraadartikel is aan een klant toegewezen"
#: stock/models.py:1667
msgid "Stock item is currently in production"
-msgstr ""
+msgstr "Voorraad item is momenteel in productie"
#: stock/models.py:1670
msgid "Serialized stock cannot be merged"
-msgstr ""
+msgstr "Geserialiseerde voorraad kan niet worden samengevoegd"
#: stock/models.py:1677 stock/serializers.py:1476
msgid "Duplicate stock items"
-msgstr ""
+msgstr "Dupliceer voorraadartikelen"
#: stock/models.py:1681
msgid "Stock items must refer to the same part"
-msgstr ""
+msgstr "Voorraadartikelen moeten hetzelfde onderdeel verwijzen"
#: stock/models.py:1689
msgid "Stock items must refer to the same supplier part"
-msgstr ""
+msgstr "Voorraadartikelen moeten verwijzen naar dezelfde leveranciersdeel"
#: stock/models.py:1694
msgid "Stock status codes must match"
-msgstr ""
+msgstr "De voorraad statuscodes moeten overeenkomen"
#: stock/models.py:1955
msgid "StockItem cannot be moved as it is not in stock"
-msgstr ""
+msgstr "Voorraadartikel kan niet worden verplaatst omdat het niet op voorraad is"
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
-msgstr ""
+msgstr "Voorraad item volgen"
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
-msgstr ""
+msgstr "Item notities"
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
-msgstr ""
+msgstr "Waarde moet voor deze test worden opgegeven"
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
-msgstr ""
+msgstr "Bijlage moet worden geüpload voor deze test"
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
-msgstr ""
+msgstr "Ongeldige waarde voor deze test"
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
-msgstr ""
+msgstr "Test resultaat"
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
-msgstr ""
+msgstr "Test uitvoer waarde"
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
-msgstr ""
+msgstr "Test resultaat bijlage"
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
-msgstr ""
+msgstr "Test notities"
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
-msgstr ""
+msgstr "Test station"
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
-msgstr ""
+msgstr "De identificatie van het teststation waar de test werd uitgevoerd"
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
-msgstr ""
+msgstr "Gestart"
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
-msgstr ""
+msgstr "Het tijdstip van de start test"
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
-msgstr ""
+msgstr "Afgerond"
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
-msgstr ""
+msgstr "Het tijdstip van de afgeronde test"
#: stock/serializers.py:77
msgid "Generated batch code"
-msgstr ""
+msgstr "Gegenereerde batch code"
#: stock/serializers.py:86
msgid "Select build order"
-msgstr ""
+msgstr "Selecteer build order"
#: stock/serializers.py:95
msgid "Select stock item to generate batch code for"
-msgstr ""
+msgstr "Selecteer het voorraaditem om een batchcode te genereren voor"
#: stock/serializers.py:104
msgid "Select location to generate batch code for"
-msgstr ""
+msgstr "Selecteer locatie om batch code voor te genereren"
#: stock/serializers.py:113
msgid "Select part to generate batch code for"
-msgstr ""
+msgstr "Selecteer onderdeel voor het genereren van batchcode voor"
#: stock/serializers.py:122
msgid "Select purchase order"
-msgstr ""
+msgstr "Selecteer bestelling"
#: stock/serializers.py:129
msgid "Enter quantity for batch code"
-msgstr ""
+msgstr "Voer aantal voor batch code in"
#: stock/serializers.py:152
msgid "Generated serial number"
-msgstr ""
+msgstr "Gegenereerd serienummer"
#: stock/serializers.py:161
msgid "Select part to generate serial number for"
-msgstr ""
+msgstr "Selecteer onderdeel voor het genereren van het serienummer voor"
#: stock/serializers.py:169
msgid "Quantity of serial numbers to generate"
-msgstr ""
+msgstr "Aantal serienummers om te genereren"
#: stock/serializers.py:234
msgid "Test template for this result"
-msgstr ""
+msgstr "Test template voor dit resultaat"
#: stock/serializers.py:258
msgid "Template ID or test name must be provided"
-msgstr ""
+msgstr "SjabloonID of testnaam moet worden opgegeven"
#: stock/serializers.py:290
msgid "The test finished time cannot be earlier than the test started time"
-msgstr ""
+msgstr "De testtijd kan niet eerder zijn dan de starttijd van de test"
#: stock/serializers.py:327
msgid "Serial number is too large"
-msgstr ""
+msgstr "Serienummer is te groot"
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
-msgstr ""
+msgstr "Bovenliggend Item"
#: stock/serializers.py:460
msgid "Parent stock item"
-msgstr ""
+msgstr "Bovenliggende voorraad item"
#: stock/serializers.py:479
msgid "Use pack size when adding: the quantity defined is the number of packs"
-msgstr ""
+msgstr "Gebruik pakketgrootte bij het toevoegen: de hoeveelheid gedefinieerd is het aantal pakketten"
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
-msgstr ""
+msgstr "Verlopen"
#: stock/serializers.py:609 stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
-msgstr ""
+msgstr "Onderliggende items"
#: stock/serializers.py:613
msgid "Tracking Items"
-msgstr ""
+msgstr "Items volgen"
#: stock/serializers.py:619
msgid "Purchase price of this stock item, per unit or pack"
-msgstr ""
+msgstr "Inkoopprijs van dit voorraadartikel, per eenheid of pakket"
#: stock/serializers.py:638
msgid "Minimum Pricing"
-msgstr ""
+msgstr "Minimale prijs"
#: stock/serializers.py:644
msgid "Maximum Pricing"
-msgstr ""
+msgstr "Maximum prijs"
#: stock/serializers.py:668
msgid "Enter number of stock items to serialize"
-msgstr ""
+msgstr "Aantal voorraaditems om serienummers voor te maken"
#: stock/serializers.py:681
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
-msgstr ""
+msgstr "Hoeveelheid mag niet hoger zijn dan de beschikbare voorraad ({q})"
#: stock/serializers.py:688
msgid "Enter serial numbers for new items"
-msgstr ""
+msgstr "Voer serienummers voor nieuwe items in"
#: stock/serializers.py:699 stock/serializers.py:1433 stock/serializers.py:1689
msgid "Destination stock location"
-msgstr ""
+msgstr "Locatie van bestemming"
#: stock/serializers.py:706
msgid "Optional note field"
-msgstr ""
+msgstr "Optioneel notities veld"
#: stock/serializers.py:716
msgid "Serial numbers cannot be assigned to this part"
-msgstr ""
+msgstr "Serienummers kunnen niet worden toegewezen aan dit deel"
#: stock/serializers.py:771
msgid "Select stock item to install"
-msgstr ""
+msgstr "Selecteer voorraaditem om te installeren"
#: stock/serializers.py:778
msgid "Quantity to Install"
-msgstr ""
+msgstr "Te installeren hoeveelheid"
#: stock/serializers.py:779
msgid "Enter the quantity of items to install"
-msgstr ""
+msgstr "Voer de te installeren hoeveelheid items in"
#: stock/serializers.py:784 stock/serializers.py:864 stock/serializers.py:990
#: stock/serializers.py:1040
msgid "Add transaction note (optional)"
-msgstr ""
+msgstr "Transactienotitie toevoegen (optioneel)"
#: stock/serializers.py:792
msgid "Quantity to install must be at least 1"
-msgstr ""
+msgstr "Te installeren hoeveelheid moet minimaal 1 zijn"
#: stock/serializers.py:800
msgid "Stock item is unavailable"
-msgstr ""
+msgstr "Voorraadartikel is niet beschikbaar"
#: stock/serializers.py:811
msgid "Selected part is not in the Bill of Materials"
-msgstr ""
+msgstr "Het geselecteerde deel zit niet in de materialen lijst"
#: stock/serializers.py:824
msgid "Quantity to install must not exceed available quantity"
-msgstr ""
+msgstr "De te installeren hoeveelheid mag niet groter zijn dan de beschikbare hoeveelheid"
#: stock/serializers.py:859
msgid "Destination location for uninstalled item"
-msgstr ""
+msgstr "Bestemmingslocatie voor verwijderd item"
#: stock/serializers.py:910
msgid "Unsupported statistic type: "
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,238 +10515,242 @@ msgstr ""
msgid "Scan to Location"
msgstr "Scan naar Locatie"
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: 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
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: 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
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
-msgstr ""
+msgstr "Artikel dupliceren"
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
-msgstr ""
+msgstr "Bewerk voorraad item"
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
-msgstr ""
+msgstr "Voorraadartikel verwijderen"
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Product"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr "Geen fabrikant geselecteerd"
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
-msgstr ""
+msgstr "U staat niet in de lijst van eigenaars van deze locatie. Deze voorraadlocatie kan niet worden bewerkt."
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
-msgstr ""
+msgstr "Alleen lezen"
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
-msgstr ""
+msgstr "Dit voorraadartikel is niet beschikbaar"
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
-msgstr ""
+msgstr "Deze voorraad is in productie en kan niet worden bewerkt."
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
-msgstr ""
+msgstr "Bewerk het voorraaditem uit de build weergave."
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr "Dit voorraadartikel is toegewezen aan Verkooporder"
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr "Dit voorraadartikel is toegewezen aan Productieorder"
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
-msgstr ""
+msgstr "Dit voorraaditem is geserialiseerd. Het heeft een uniek serienummer en de hoeveelheid kan niet worden aangepast"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr "vorige pagina"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
-msgstr ""
+msgstr "Navigeer naar het vorige serienummer"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr "volgende pagina"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
-msgstr ""
+msgstr "Navigeer naar het volgende serienummer"
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr "Geen locatie ingesteld"
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
-msgstr ""
+msgstr "Testen"
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
-msgstr ""
+msgstr "Dit voorraadartikel heeft niet alle vereiste tests doorstaan"
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr ""
+msgstr "Dit voorraadartikel is verlopen op %(item.expiry_date)s"
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr ""
+msgstr "Dit voorraadartikel verloopt op %(item.expiry_date)s"
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
-msgstr ""
+msgstr "Er is geen voorraad uitgevoerd"
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
-msgstr ""
+msgstr "Voorraad item"
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
-msgstr ""
+msgstr "Bewerk voorraad status"
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
-msgstr ""
+msgstr "Stock Item QR Code"
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
-msgstr ""
+msgstr "Link streepjescode aan standaard artikel"
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
-msgstr ""
+msgstr "Selecteer één van de hieronder vermelde onderdelen varianten."
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
-msgstr ""
+msgstr "Waarschuwing"
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
-msgstr ""
+msgstr "Deze actie kan niet makkelijk ongedaan worden gemaakt"
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
-msgstr ""
+msgstr "Converteer voorraad item"
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
-msgstr ""
+msgstr "Terug naar voorraad"
#: stock/templates/stock/item_serialize.html:5
msgid "Create serialized items from this stock item."
-msgstr ""
+msgstr "Creëer geserialiseerde artikelen van dit voorraadartikel."
#: stock/templates/stock/item_serialize.html:7
msgid "Select quantity to serialize, and unique serial numbers."
-msgstr ""
+msgstr "Selecteer aantal om te serialiseren en unieke serienummers."
#: stock/templates/stock/location.html:35
msgid "Perform stocktake for this stock location"
-msgstr ""
+msgstr "Voorraadcontrole uitvoeren voor deze voorraadlocatie"
#: stock/templates/stock/location.html:42
msgid "Locate stock location"
-msgstr ""
+msgstr "Zoek voorraad locatie"
#: stock/templates/stock/location.html:60
msgid "Scan stock items into this location"
-msgstr ""
+msgstr "Scan voorraadartikelen naar deze locatie"
#: stock/templates/stock/location.html:60
msgid "Scan In Stock Items"
-msgstr ""
+msgstr "Scan items op voorraad"
#: stock/templates/stock/location.html:61
msgid "Scan stock container into this location"
-msgstr ""
+msgstr "Scan de voorraadcontainer naar deze locatie"
#: stock/templates/stock/location.html:61
msgid "Scan In Container"
-msgstr ""
+msgstr "Scan in container"
#: stock/templates/stock/location.html:72
msgid "Print Location Report"
-msgstr ""
+msgstr "Print locatie rapport"
#: stock/templates/stock/location.html:101
msgid "Location actions"
@@ -10697,11 +10766,11 @@ msgstr "Verwijder locatie"
#: stock/templates/stock/location.html:135
msgid "Top level stock location"
-msgstr ""
+msgstr "Locatie voorraad topniveau"
#: stock/templates/stock/location.html:141
msgid "Location Owner"
-msgstr ""
+msgstr "Locatie eigenaar"
#: stock/templates/stock/location.html:145
msgid "You are not in the list of owners of this location. This stock location cannot be edited."
@@ -10709,7 +10778,7 @@ msgstr "U staat niet in de lijst van eigenaars van deze locatie. Deze voorraadlo
#: stock/templates/stock/location.html:173
msgid "Location Type"
-msgstr ""
+msgstr "Locatie type"
#: stock/templates/stock/location.html:223
msgid "Create new stock location"
@@ -10722,31 +10791,31 @@ msgstr "Nieuwe Locatie"
#: stock/templates/stock/location.html:298
#: templates/js/translated/stock.js:2658
msgid "stock location"
-msgstr ""
+msgstr "Voorraad locatie"
#: stock/templates/stock/location.html:320
msgid "Scanned stock container into this location"
-msgstr ""
+msgstr "Gescande voorraadcontainer op deze locatie"
#: stock/templates/stock/location.html:393
msgid "Stock Location QR Code"
-msgstr ""
+msgstr "Voorraadlocatie QR-code"
#: stock/templates/stock/location.html:404
msgid "Link Barcode to Stock Location"
-msgstr ""
+msgstr "Link streepjescode aan voorraad locatie"
#: stock/templates/stock/stock_app_base.html:16
msgid "Loading..."
-msgstr ""
+msgstr "Laden..."
#: stock/templates/stock/stock_sidebar.html:5
msgid "Stock Tracking"
-msgstr ""
+msgstr "Voorraad volgen"
#: stock/templates/stock/stock_sidebar.html:8
msgid "Allocations"
-msgstr ""
+msgstr "Toewijzingen"
#: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7
msgid "Permission Denied"
@@ -10816,7 +10885,7 @@ msgstr ""
#: templates/InvenTree/index.html:77
msgid "BOM Waiting Validation"
-msgstr ""
+msgstr "Stuklijst BOM wacht op validatie"
#: templates/InvenTree/index.html:106
msgid "Recently Updated"
@@ -10824,7 +10893,7 @@ msgstr ""
#: templates/InvenTree/index.html:134
msgid "Depleted Stock"
-msgstr ""
+msgstr "Uitgebreide voorraad"
#: templates/InvenTree/index.html:148
msgid "Required for Build Orders"
@@ -10832,11 +10901,11 @@ msgstr ""
#: templates/InvenTree/index.html:156
msgid "Expired Stock"
-msgstr ""
+msgstr "Verlopen voorraad"
#: templates/InvenTree/index.html:172
msgid "Stale Stock"
-msgstr ""
+msgstr "Verouderde voorraad"
#: templates/InvenTree/index.html:199
msgid "Build Orders In Progress"
@@ -11012,11 +11081,11 @@ msgstr ""
#: templates/InvenTree/settings/part_stocktake.html:7
msgid "Stocktake Settings"
-msgstr ""
+msgstr "Voorraadcontrole instellingen"
#: templates/InvenTree/settings/part_stocktake.html:25
msgid "Stocktake Reports"
-msgstr ""
+msgstr "Voorraadcontrole rapporten"
#: templates/InvenTree/settings/physical_units.html:8
#: templates/InvenTree/settings/sidebar.html:35
@@ -11290,7 +11359,7 @@ msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:439
msgid "No stock location types found"
-msgstr ""
+msgstr "Geen voorraadlocatie typen gevonden"
#: templates/InvenTree/settings/settings_staff_js.html:464
msgid "Location count"
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr "Verkooporder Instellingen"
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -12140,15 +12209,15 @@ msgstr ""
#: templates/js/translated/bom.js:78
msgid "Create BOM Item"
-msgstr ""
+msgstr "Creëer stuklijst BOM Item"
#: templates/js/translated/bom.js:132
msgid "Display row data"
-msgstr ""
+msgstr "Toon rijgegevens"
#: templates/js/translated/bom.js:188
msgid "Row Data"
-msgstr ""
+msgstr "Rij gegevens"
#: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700
#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629
@@ -12160,7 +12229,7 @@ msgstr "Sluit"
#: templates/js/translated/bom.js:306
msgid "Download BOM Template"
-msgstr ""
+msgstr "Download stuklijst BOM sjabloon"
#: templates/js/translated/bom.js:351
msgid "Multi Level BOM"
@@ -12172,67 +12241,67 @@ msgstr ""
#: templates/js/translated/bom.js:357
msgid "Levels"
-msgstr ""
+msgstr "Levels"
#: templates/js/translated/bom.js:358
msgid "Select maximum number of BOM levels to export (0 = all levels)"
-msgstr ""
+msgstr "Selecteer het maximum aantal te exporteren stuklijst BOM niveaus (0 = alle levels)"
#: templates/js/translated/bom.js:365
msgid "Include Alternative Parts"
-msgstr ""
+msgstr "Inclusief alternatieve onderdelen"
#: templates/js/translated/bom.js:366
msgid "Include alternative parts in exported BOM"
-msgstr ""
+msgstr "Inclusief alternatieve onderdelen in geëxporteerd stuklijst BOM"
#: templates/js/translated/bom.js:371
msgid "Include Parameter Data"
-msgstr ""
+msgstr "Voeg parametergegevens toe"
#: templates/js/translated/bom.js:372
msgid "Include part parameter data in exported BOM"
-msgstr ""
+msgstr "Voeg deel parameter gegevens toe aan geëxporteerde stuklijst BOM"
#: templates/js/translated/bom.js:377
msgid "Include Stock Data"
-msgstr ""
+msgstr "Inclusief voorraadgegevens"
#: templates/js/translated/bom.js:378
msgid "Include part stock data in exported BOM"
-msgstr ""
+msgstr "Inclusief voorraadgegevens in geëxporteerde stuklijst BOM"
#: templates/js/translated/bom.js:383
msgid "Include Manufacturer Data"
-msgstr ""
+msgstr "Inclusief fabrikant gegevens"
#: templates/js/translated/bom.js:384
msgid "Include part manufacturer data in exported BOM"
-msgstr ""
+msgstr "Voeg fabrikant gegevens toe aan geëxporteerd stuklijst BOM"
#: templates/js/translated/bom.js:389
msgid "Include Supplier Data"
-msgstr ""
+msgstr "Inclusief leveranciersgegevens"
#: templates/js/translated/bom.js:390
msgid "Include part supplier data in exported BOM"
-msgstr ""
+msgstr "Inclusief leveranciersgegevens in geëxporteerde stuklijst BOM"
#: templates/js/translated/bom.js:395
msgid "Include Pricing Data"
-msgstr ""
+msgstr "Inclusief prijsgegevens"
#: templates/js/translated/bom.js:396
msgid "Include part pricing data in exported BOM"
-msgstr ""
+msgstr "Voeg onderdelenprijs gegevens toe aan geëxporteerde stuklijst BOM"
#: templates/js/translated/bom.js:591
msgid "Remove substitute part"
-msgstr ""
+msgstr "Vervanging onderdeel verwijderen"
#: templates/js/translated/bom.js:645
msgid "Select and add a new substitute part using the input below"
-msgstr ""
+msgstr "Selecteer en voeg een nieuw vervangingsonderdeel toe met behulp van onderstaande invoer"
#: templates/js/translated/bom.js:656
msgid "Are you sure you wish to remove this substitute part link?"
@@ -12240,118 +12309,118 @@ msgstr ""
#: templates/js/translated/bom.js:662
msgid "Remove Substitute Part"
-msgstr ""
+msgstr "Verwijder vervangend deel"
#: templates/js/translated/bom.js:701
msgid "Add Substitute"
-msgstr ""
+msgstr "Plaatsvervanger toevoegen"
#: templates/js/translated/bom.js:702
msgid "Edit BOM Item Substitutes"
-msgstr ""
+msgstr "Stuklijst BOM Item vervangingen bewerken"
#: templates/js/translated/bom.js:764
msgid "All selected BOM items will be deleted"
-msgstr ""
+msgstr "Alle geselecteerde stuklijst BOM items zullen worden verwijderd"
#: templates/js/translated/bom.js:780
msgid "Delete selected BOM items?"
-msgstr ""
+msgstr "Geselecteerde stuklijst BOM items verwijderen?"
#: templates/js/translated/bom.js:826
msgid "Delete items"
-msgstr ""
+msgstr "Artikelen verwijderen"
#: templates/js/translated/bom.js:936
msgid "Load BOM for subassembly"
-msgstr ""
+msgstr "Laad stuklijst BOM voor sub assemblage"
#: templates/js/translated/bom.js:946
msgid "Substitutes Available"
-msgstr ""
+msgstr "Vervangingen beschikbaar"
#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676
msgid "Variant stock allowed"
-msgstr ""
+msgstr "Variant voorraad toegestaan"
#: templates/js/translated/bom.js:1014
msgid "Substitutes"
-msgstr ""
+msgstr "Vervanging"
#: templates/js/translated/bom.js:1139
msgid "BOM pricing is complete"
-msgstr ""
+msgstr "Stuklijst BOM prijs is voltooid"
#: templates/js/translated/bom.js:1144
msgid "BOM pricing is incomplete"
-msgstr ""
+msgstr "Stuklijst BOM prijs aanduiding is niet compleet"
#: templates/js/translated/bom.js:1151
msgid "No pricing available"
-msgstr ""
+msgstr "Geen prijs beschikbaar"
#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815
msgid "External stock"
-msgstr ""
+msgstr "Externe voorraad"
#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789
#: templates/js/translated/sales_order.js:1946
msgid "No Stock Available"
-msgstr ""
+msgstr "Geen voorraad beschikbaar"
#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793
msgid "Includes variant and substitute stock"
-msgstr ""
+msgstr "Inclusief variant en vervangende voorraad"
#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795
#: templates/js/translated/part.js:1263
#: templates/js/translated/sales_order.js:1943
msgid "Includes variant stock"
-msgstr ""
+msgstr "Inclusief variant voorraad"
#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797
msgid "Includes substitute stock"
-msgstr ""
+msgstr "Inclusief vervangende voorraad"
#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780
msgid "Consumable item"
-msgstr ""
+msgstr "Verbruiksartikel"
#: templates/js/translated/bom.js:1285
msgid "Validate BOM Item"
-msgstr ""
+msgstr "Valideren stuklijstBOM Item"
#: templates/js/translated/bom.js:1287
msgid "This line has been validated"
-msgstr ""
+msgstr "Deze regel is gevalideerd"
#: templates/js/translated/bom.js:1289
msgid "Edit substitute parts"
-msgstr ""
+msgstr "Bewerk vervangende onderdelen"
#: templates/js/translated/bom.js:1291 templates/js/translated/bom.js:1486
msgid "Edit BOM Item"
-msgstr ""
+msgstr "Edit stuklijst BOM Item"
#: templates/js/translated/bom.js:1293
msgid "Delete BOM Item"
-msgstr ""
+msgstr "Verwijder stuklijst BOM Item"
#: templates/js/translated/bom.js:1313
msgid "View BOM"
-msgstr ""
+msgstr "Bekijk stuklijst BOM"
#: templates/js/translated/bom.js:1397
msgid "No BOM items found"
-msgstr ""
+msgstr "Geen stuklijst BOM producten gevonden"
#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661
msgid "Required Part"
-msgstr ""
+msgstr "Vereist onderdeel"
#: templates/js/translated/bom.js:1683
msgid "Inherited from parent BOM"
-msgstr ""
+msgstr "Overgenomen van bovenliggende stuklijst BOM"
#: templates/js/translated/build.js:143
msgid "Edit Build Order"
@@ -12718,7 +12787,7 @@ msgstr ""
#: templates/js/translated/build.js:2785
#: templates/js/translated/sales_order.js:1951
msgid "Sufficient stock available"
-msgstr ""
+msgstr "Te veel voorraad beschikbaar"
#: templates/js/translated/build.js:2840
msgid "Consumable Item"
@@ -12735,20 +12804,20 @@ msgstr ""
#: templates/js/translated/build.js:2856
#: templates/js/translated/sales_order.js:2052
msgid "Build stock"
-msgstr ""
+msgstr "Voorraad bouwen"
#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1954
msgid "Order stock"
-msgstr ""
+msgstr "Bestel voorraad"
#: templates/js/translated/build.js:2865
#: templates/js/translated/sales_order.js:2046
msgid "Allocate stock"
-msgstr ""
+msgstr "Voorraad toewijzen"
#: templates/js/translated/build.js:2869
msgid "Remove stock allocation"
-msgstr ""
+msgstr "Verwijder voorraad toewijzing"
#: templates/js/translated/company.js:98
msgid "Add Manufacturer"
@@ -13280,7 +13349,7 @@ msgstr ""
#: templates/js/translated/part.js:334 templates/js/translated/stock.js:147
#: templates/js/translated/stock.js:182
msgid "Icon (optional) - Explore all available icons on"
-msgstr ""
+msgstr "Pictogram (optioneel) - Ontdek alle beschikbare pictogrammen op"
#: templates/js/translated/part.js:355
msgid "Create Part Category"
@@ -13356,7 +13425,7 @@ msgstr ""
#: templates/js/translated/part.js:551
msgid "Any stock items for this part will be deleted"
-msgstr ""
+msgstr "Alle voorraadartikelen voor dit onderdeel worden verwijderd"
#: templates/js/translated/part.js:552
msgid "This part will be removed from any Bills of Material"
@@ -13388,7 +13457,7 @@ msgstr ""
#: templates/js/translated/part.js:622
msgid "Validating the BOM will mark each line item as valid"
-msgstr ""
+msgstr "Het valideren van de stuklijst BOM zal elk regelitem als geldig markeren"
#: templates/js/translated/part.js:632
msgid "Validate Bill of Materials"
@@ -13405,11 +13474,11 @@ msgstr ""
#: templates/js/translated/part.js:688
#: templates/js/translated/table_filters.js:755
msgid "Low stock"
-msgstr ""
+msgstr "Lage voorraad"
#: templates/js/translated/part.js:691
msgid "No stock available"
-msgstr ""
+msgstr "Geen voorraad beschikbaar"
#: templates/js/translated/part.js:751
msgid "Demand"
@@ -13433,31 +13502,31 @@ msgstr ""
#: templates/js/translated/part.js:896
msgid "Schedule generation of a new stocktake report."
-msgstr ""
+msgstr "Plan het genereren van een nieuw voorraad verslag."
#: templates/js/translated/part.js:896
msgid "Once complete, the stocktake report will be available for download."
-msgstr ""
+msgstr "Eenmaal voltooid, zal het voorraadrapport beschikbaar zijn om te downloaden."
#: templates/js/translated/part.js:904
msgid "Generate Stocktake Report"
-msgstr ""
+msgstr "Voorraadcontrole rapport genereren"
#: templates/js/translated/part.js:908
msgid "Stocktake report scheduled"
-msgstr ""
+msgstr "Voorraadcontrole verslag gepland"
#: templates/js/translated/part.js:1057
msgid "No stocktake information available"
-msgstr ""
+msgstr "Geen voorraadinformatie beschikbaar"
#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1151
msgid "Edit Stocktake Entry"
-msgstr ""
+msgstr "Invoer voorraadopname bewerken"
#: templates/js/translated/part.js:1119 templates/js/translated/part.js:1161
msgid "Delete Stocktake Entry"
-msgstr ""
+msgstr "Voorraad invoer verwijderen"
#: templates/js/translated/part.js:1288
msgid "No variants found"
@@ -13535,7 +13604,7 @@ msgstr ""
#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680
#: templates/js/translated/stock.js:2755
msgid "Display as list"
-msgstr ""
+msgstr "Weergeven als lijst"
#: templates/js/translated/part.js:2566
msgid "Display as grid"
@@ -13547,7 +13616,7 @@ msgstr ""
#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775
msgid "Display as tree"
-msgstr ""
+msgstr "Weergeven als structuur"
#: templates/js/translated/part.js:2780
msgid "Load Subcategories"
@@ -13607,7 +13676,7 @@ msgstr ""
#: templates/js/translated/part.js:3230
msgid "Scheduled Stock Quantities"
-msgstr ""
+msgstr "Geplande voorraad hoeveelheid"
#: templates/js/translated/part.js:3246
msgid "Maximum Quantity"
@@ -13615,7 +13684,7 @@ msgstr ""
#: templates/js/translated/part.js:3291
msgid "Minimum Stock Level"
-msgstr ""
+msgstr "Minimum voorraad niveau"
#: templates/js/translated/plugin.js:46
msgid "No plugins found"
@@ -13671,7 +13740,7 @@ msgstr ""
#: templates/js/translated/pricing.js:321
msgid "No BOM data available"
-msgstr ""
+msgstr "Geen stuklijst BOM gegevens beschikbaar"
#: templates/js/translated/pricing.js:463
msgid "No supplier pricing data available"
@@ -13829,11 +13898,11 @@ msgstr ""
#: templates/js/translated/purchase_order.js:1170
#: templates/js/translated/stock.js:1215
msgid "Specify packaging for incoming stock items"
-msgstr ""
+msgstr "Specificeer verpakking voor inkomende voorraaditems"
#: templates/js/translated/purchase_order.js:1223
msgid "Stock Status"
-msgstr ""
+msgstr "Voorraad staat"
#: templates/js/translated/purchase_order.js:1237
msgid "Add barcode"
@@ -13890,7 +13959,7 @@ msgstr ""
#: templates/js/translated/purchase_order.js:1465
msgid "Scan barcode on incoming item (must not match any existing stock items)"
-msgstr ""
+msgstr "Scan de streepjescode op het inkomende item (mag niet overeenkomen met bestaande voorraadartikelen)"
#: templates/js/translated/purchase_order.js:1479
msgid "Invalid barcode data"
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
@@ -14019,11 +14084,11 @@ msgstr ""
#: templates/js/translated/sales_order.js:291
msgid "No stock items have been allocated to this shipment"
-msgstr ""
+msgstr "Er zijn geen voorraadartikelen toegewezen aan deze zending"
#: templates/js/translated/sales_order.js:296
msgid "The following stock items will be shipped"
-msgstr ""
+msgstr "De volgende voorraadartikelen worden verzonden"
#: templates/js/translated/sales_order.js:336
msgid "Complete Shipment"
@@ -14039,7 +14104,7 @@ msgstr ""
#: templates/js/translated/sales_order.js:420
msgid "No stock items have been allocated to pending shipments"
-msgstr ""
+msgstr "Geen voorraadartikelen toegewezen aan lopende verzendingen"
#: templates/js/translated/sales_order.js:430
msgid "Complete Shipments"
@@ -14140,11 +14205,11 @@ msgstr ""
#: templates/js/translated/sales_order.js:1306
msgid "Confirm stock allocation"
-msgstr ""
+msgstr "Voorraadtoewijzing bevestigen"
#: templates/js/translated/sales_order.js:1307
msgid "Allocate Stock Items to Sales Order"
-msgstr ""
+msgstr "Voorraad artikelen toewijzen aan verkooporder"
#: templates/js/translated/sales_order.js:1513
msgid "No sales order allocations found"
@@ -14152,7 +14217,7 @@ msgstr ""
#: templates/js/translated/sales_order.js:1605
msgid "Edit Stock Allocation"
-msgstr ""
+msgstr "Bewerk voorraadtoewijzing"
#: templates/js/translated/sales_order.js:1619
msgid "Confirm Delete Operation"
@@ -14160,18 +14225,18 @@ msgstr ""
#: templates/js/translated/sales_order.js:1620
msgid "Delete Stock Allocation"
-msgstr ""
+msgstr "Verwijder voorraadtoewijzing"
#: templates/js/translated/sales_order.js:1659
#: templates/js/translated/sales_order.js:1746
#: templates/js/translated/stock.js:1861
msgid "Shipped to customer"
-msgstr ""
+msgstr "Verzonden naar klant"
#: templates/js/translated/sales_order.js:1667
#: templates/js/translated/sales_order.js:1755
msgid "Stock location not specified"
-msgstr ""
+msgstr "Voorraadlocatie niet opgegeven"
#: templates/js/translated/sales_order.js:2044
msgid "Allocate serial numbers"
@@ -14179,7 +14244,7 @@ msgstr ""
#: templates/js/translated/sales_order.js:2048
msgid "Purchase stock"
-msgstr ""
+msgstr "Voorraad kopen"
#: templates/js/translated/sales_order.js:2057
#: templates/js/translated/sales_order.js:2245
@@ -14224,87 +14289,87 @@ msgstr ""
#: templates/js/translated/stock.js:106
msgid "Serialize Stock Item"
-msgstr ""
+msgstr "Voorraadartikel serialiseren"
#: templates/js/translated/stock.js:137
msgid "Confirm Stock Serialization"
-msgstr ""
+msgstr "Bevestig voorraad serialisatie"
#: templates/js/translated/stock.js:173
msgid "Add Location type"
-msgstr ""
+msgstr "Voeg locatie type toe"
#: templates/js/translated/stock.js:209
msgid "Edit Stock Location"
-msgstr ""
+msgstr "Voorraad locatie bewerken"
#: templates/js/translated/stock.js:224
msgid "New Stock Location"
-msgstr ""
+msgstr "Nieuwe voorraad locatie"
#: templates/js/translated/stock.js:226
msgid "Create another location after this one"
-msgstr ""
+msgstr "Een andere locatie aanmaken na deze"
#: templates/js/translated/stock.js:227
msgid "Stock location created"
-msgstr ""
+msgstr "Voorraadlocatie aangemaakt"
#: templates/js/translated/stock.js:241
msgid "Are you sure you want to delete this stock location?"
-msgstr ""
+msgstr "Weet u zeker dat u deze voorraadlocatie wilt verwijderen?"
#: templates/js/translated/stock.js:248
msgid "Move to parent stock location"
-msgstr ""
+msgstr "Verplaats naar bovenliggende standaard locatie"
#: templates/js/translated/stock.js:257
msgid "Delete Stock Location"
-msgstr ""
+msgstr "Voorraad locatie verwijderen"
#: templates/js/translated/stock.js:261
msgid "Action for stock items in this stock location"
-msgstr ""
+msgstr "Actie voor voorraad artikelen op deze voorraadlocatie"
#: templates/js/translated/stock.js:266
msgid "Action for sub-locations"
-msgstr ""
+msgstr "Actie voor deellocaties"
#: templates/js/translated/stock.js:320
msgid "This part cannot be serialized"
-msgstr ""
+msgstr "Dit onderdeel kan niet geserialiseerd worden"
#: templates/js/translated/stock.js:356
msgid "Add given quantity as packs instead of individual items"
-msgstr ""
+msgstr "Opgegeven hoeveelheid als pakket toevoegen in plaats van individuele artikelen"
#: templates/js/translated/stock.js:368
msgid "Enter initial quantity for this stock item"
-msgstr ""
+msgstr "Voer het initiële aantal in voor dit voorraaditem"
#: templates/js/translated/stock.js:374
msgid "Enter serial numbers for new stock (or leave blank)"
-msgstr ""
+msgstr "Voer serienummer in voor nieuwe voorraad (of laat het leeg)"
#: templates/js/translated/stock.js:445
msgid "Stock item duplicated"
-msgstr ""
+msgstr "Voorraad item gedupliceerd"
#: templates/js/translated/stock.js:465
msgid "Duplicate Stock Item"
-msgstr ""
+msgstr "Artikel dupliceren"
#: templates/js/translated/stock.js:481
msgid "Are you sure you want to delete this stock item?"
-msgstr ""
+msgstr "Weet u zeker dat u dit product wilt verwijderen?"
#: templates/js/translated/stock.js:486
msgid "Delete Stock Item"
-msgstr ""
+msgstr "Voorraad item verwijderen"
#: templates/js/translated/stock.js:507
msgid "Edit Stock Item"
-msgstr ""
+msgstr "Voorraad item bewerken"
#: templates/js/translated/stock.js:549
msgid "Create another item after this one"
@@ -14677,7 +14742,7 @@ msgstr ""
#: templates/js/translated/stock.js:3305
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
-msgstr ""
+msgstr "Het voorraadartikel linkt naar een onderdeel dat de stuklijst BOM is voor dit voorraadartikel"
#: templates/js/translated/stock.js:3306
msgid "The Stock Item is currently available in stock"
diff --git a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po
index 80f730a9c783..c6961f2386e0 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Kinesisk (tradisjonell)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] Logg inn på appen"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Duplikatnavn kan ikke eksistere under samme overordnede"
msgid "Invalid choice"
msgstr "Ugyldig valg"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Navn"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Serverfeil"
msgid "An error has been logged by the server."
msgstr "En feil har blitt logget av serveren."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Må være et gyldig tall"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Velg valuta ut fra tilgjengelige alternativer"
msgid "Username"
msgstr "Brukernavn"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "Fornavn"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr "Fornavn på brukeren"
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "Etternavn"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr "Etternavn på brukeren"
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr "E-postadressen til brukeren"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr "Personale"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr "Har denne brukeren personelltillatelser"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr "Superbruker"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr "Er denne brukeren en superbruker"
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr "Er denne brukeren en superbruker"
msgid "Active"
msgstr "Aktiv"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr "Er denne brukerkontoen aktiv"
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "Du har ikke tillatelse til å endre denne brukerrollen."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Bare superbrukere kan opprette nye brukere"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "Din konto er opprettet."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "Vennligst bruk funksjonen for å tilbakestille passord for å logge inn"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "Velkommen til InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Ugyldig verdi"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Datafil"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Velg datafil for opplasting"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Filtypen støttes ikke"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Filen er for stor"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Ingen kolonner funnet i filen"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Ingen datarader funnet i fil"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Ingen datarader oppgitt"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Ingen datakolonner angitt"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Mangler påkrevd kolonne: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Dupliaktkolonne: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Eksternt bilde"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "URLtil ekstern bildefil"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "Nedlasting av bilder fra ekstern URL er ikke aktivert"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Sjekk av bakgrunnsarbeider mislyktes"
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr "Produksjonen må avbrytes før den kan slettes"
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "Produksjonen må avbrytes før den kan slettes"
msgid "Consumable"
msgstr "Forbruksvare"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "Valgfritt"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr "Tildelt"
msgid "Available"
msgstr "Tilgjengelig"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Tilgjengelig"
msgid "Build Order"
msgstr "Produksjonsordre"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr "Produksjonsordre-referanse"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "Produksjonsordre som denne produksjonen er tildelt"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr "Bruker eller gruppe ansvarlig for produksjonsordren"
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Ekstern lenke"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Lenke til ekstern URL"
@@ -1110,7 +1110,7 @@ msgstr "Produksjonsordre {build} er fullført"
msgid "A build order has been completed"
msgstr "En produksjonsordre er fullført"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "Ingen produksjonsartikkel spesifisert"
@@ -1122,37 +1122,37 @@ msgstr "Produksjonsartikkelen er allerede fullført"
msgid "Build output does not match Build Order"
msgstr "Produksjonsartikkelen samsvarer ikke med produksjonsordren"
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "Mengden må være større enn null"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr "Kvantitet kan ikke være større enn utgangsantallet"
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "Produksjonsartikkel {serial} har ikke bestått alle påkrevde tester"
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr "Produksjonsartikkel"
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr "Produksjonsobjekt"
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr "Produksjonsobjekt"
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr "Produksjonsobjekt"
msgid "Quantity"
msgstr "Antall"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr "Påkrevd antall for produksjonsordre"
-#: build/models.py:1586
+#: build/models.py:1597
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:1595
+#: build/models.py:1606
#, 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:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "Lagervaren er overtildelt"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "Tildelingsantall må være større enn null"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "Mengden må være 1 for serialisert lagervare"
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr "Valgt lagervare samsvarer ikke med BOM-linjen"
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr "Valgt lagervare samsvarer ikke med BOM-linjen"
msgid "Stock Item"
msgstr "Lagervare"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Kildelagervare"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Lagerantall å tildele til produksjonen"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Monteres i"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Lagervare for montering"
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr "Delnavn"
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "Angi serienummer for produksjonsartikler"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr "Plassering for ferdige produksjonsartikler"
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr "Produksjonsartikkel må spesifiseres for tildeling av sporede deler"
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Produksjonsartikkel kan ikke spesifiseres for tildeling av usporede deler"
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr "Tildelingsartikler må oppgis"
@@ -1590,7 +1590,7 @@ msgstr "BOM-referanse"
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr "Emballasje"
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr "Del-ID"
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr "Del -IPN"
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr "Serienummer"
msgid "Allocated Quantity"
msgstr "Tildelt antall"
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr "Tilgjengelig antall"
@@ -1667,13 +1667,13 @@ msgstr "Sporbar"
msgid "Inherited"
msgstr "Nedarvet"
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046
#: templates/js/translated/build.js:2714
msgid "Allow Variants"
msgstr "Tillat Varianter"
-#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr "BOM-artikkel"
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr "Tildelt lagerbeholdning"
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr "Tildelt lagerbeholdning"
msgid "On Order"
msgstr "I bestilling"
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr "I produksjon"
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr "Tilgjengelige variantvarer"
msgid "Total Available Stock"
msgstr "Totalt tilgjengelig lagerbeholdning"
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr "Ekstern lagerbeholdning"
@@ -1745,7 +1745,7 @@ msgstr "Kansellert"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Fullført"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr "Slett Produksjon"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr "Fullførte byggeresultater"
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr "Tildelte deler"
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr "Ufullstendige artikler"
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr "Er lenke"
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr "Er fil"
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr "Brukeren har ikke tillatelse til å slette dette vedlegget"
@@ -2352,8 +2349,8 @@ msgstr "Hvor ofte valutakurser skal oppdateres (sett til null for å deaktiverer
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "dager"
@@ -2581,9 +2578,9 @@ msgstr "Kopier designmaler for kategoriparametere"
msgid "Copy category parameter templates when creating a part"
msgstr "Kopier parametermaler for kategori ved oppretting av en del"
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr "Deler kan settes sammen fra andre komponenter som standard"
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr "Komponent"
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "Sidestørrelse"
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr "Standard sidestørrelse for PDF-rapporter"
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr "Aktiver Testrapporter"
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr "Aktiver generering av testrapporter"
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr "Legg ved testrapporter"
-
-#: common/models.py:1716
-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:1722
msgid "Globally Unique Serials"
msgstr "Globalt Unike Serienummer"
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr "Serienummer for lagervarer må være globalt unike"
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr "Automatisk tildeling av Serienummer"
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr "Aumatisk fyll ut serienummer i skjemaer"
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr "Slett oppbrukt lagerbeholdning"
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr "Batchkodemal"
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr "Mal for generering av standard batchkoder for lagervarer"
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr "Lagerbeholdning utløper"
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr "Aktiver funksjonalitet for utløp av lagerbeholdning"
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr "Selg utløpt lagerbeholdning"
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr "Tillat salg av utgått lagerbeholdning"
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr "Foreldet lagerbeholdning tidsintervall"
-#: common/models.py:1763
+#: common/models.py:1749
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:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr "Produsér Utløpt Lagerbeholdning"
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr "Tillat produksjon med utløpt lagerbeholdning"
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr "Kontroll over eierskap av lagerbeholdning"
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr "Aktiver eierskap over lagerplasseringer og -varer"
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr "Lagerplassering standard ikon"
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr "Lagerplassering standard ikon (tomt betyr ingen ikon)"
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr "Vis installerte lagervarer"
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr "Vis installerte lagervarer i lagertabeller"
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr "Produksjonsordre-referansemønster"
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr "Nødvendig mønster for å generere Produksjonsordre-referansefeltet"
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr "Aktiver returordrer"
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr "Aktiver returordrefunksjonalitet i brukergrensesnittet"
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr "Returordre-referansemønster"
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr "Rediger fullførte returordrer"
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr "Tillat redigering av returordrer etter de er fullført"
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr "Salgsordre-referansemønster"
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr "Påkrevd mønster for å generere salgsordrereferansefelt"
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr "Salgsordre standard fraktmetode"
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr "Aktiver opprettelse av standard forsendelse med salgsordrer"
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr "Rediger fullførte salgsordrer"
-#: common/models.py:1910
+#: common/models.py:1896
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:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr "Referansemønster for innkjøpsordre"
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Obligatorisk mønster for generering av referansefelt for innkjøpsordre"
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr "Rediger fullførte innkjøpsordre"
-#: common/models.py:1940
+#: common/models.py:1926
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:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr "Autofullfør innkjøpsordrer"
-#: common/models.py:1948
+#: common/models.py:1934
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:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr "Aktiver passord glemt"
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr "Ativer funskjon for glemt passord på innloggingssidene"
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr "Aktiver registrering"
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr "Aktiver egenregistrerting for brukerer på påloggingssidene"
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr "Aktiver SSO"
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr "Aktiver SSO på innloggingssidene"
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr "Aktiver SSO-registrering"
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Aktiver selvregistrering via SSO for brukere på innloggingssiden"
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "E-postadresse kreves"
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr "Krevt at brukere angir e-post ved registrering"
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr "Auto-utfyll SSO-brukere"
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Fyll automatisk ut brukeropplysninger fra SSO-kontodata"
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr "E-post to ganger"
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr "Spør brukeren om e-post to ganger ved registrering"
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr "Passord to ganger"
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr "Spør brukeren om passord to ganger ved registrering"
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr "Tillatte domener"
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Begrens registrering til bestemte domener (kommaseparert, begynner med @)"
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr "Gruppe ved registrering"
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr "Krev MFA"
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr "Brukere må bruke flerfaktorsikkerhet."
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr "Sjekk utvidelser ved oppstart"
-#: common/models.py:2063
+#: common/models.py:2049
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:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr "Aktiver URL-integrasjon"
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr "Tillat utvidelser å legge til URL-ruter"
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr "Aktiver navigasjonsintegrasjon"
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr "Tillat utvidelser å integrere mot navigasjon"
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr "Aktiver app-integrasjon"
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr "Tillat utvidelser å legge til apper"
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr "Aktiver tidsplanintegrasjon"
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr "Tillat utvidelser å kjøre planlagte oppgaver"
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr "Aktiver hendelsesintegrasjon"
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr "Tillat utvidelser å reagere på interne hendelser"
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr "Aktiver prosjektkoder"
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr "Aktiver prosjektkoder for å spore prosjekter"
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr "Varetellingsfunksjonalitet"
-#: common/models.py:2121
+#: common/models.py:2114
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:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr "Ekskluder eksterne plasseringer"
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "Eksluder lagervarer i eksterne plasseringer fra varetellinger"
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr "Automatisk varetellingsperiode"
-#: common/models.py:2137
+#: common/models.py:2130
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:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr "Rapportslettingsintervall"
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr "Varetellingsrapporter vil slettes etter angitt antall dager"
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr "Vis brukernes fulle navn"
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr "Vis brukernes fulle navn istedet for brukernavn"
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
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:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr "Skjul inaktive elementer"
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr "Skjul inaktive deler i resultater som vises på hjemmesiden"
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr "Vis abonnerte deler"
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr "Vis abonnerte deler på startsiden"
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr "Vis abonnerte kategorier"
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr "Vis abonnerte delkatekorier på startsiden"
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr "Vis nyeste deler"
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr "Vis nyeste deler på startsiden"
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr "Vis stykklister som venter på validering på startsiden"
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr "Vis nylige lagerendringer"
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr "Vis nylig endrede lagervarer på startsiden"
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr "Vis lav lagerbeholdning"
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr "Vis lave lagervarer på startsiden"
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr "Vis tomme lagervarer"
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr "Vis tom lagerbeholdning på startsiden"
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr "Vis nødvendig lagerbeholdning"
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr "Vis lagervarer som trengs for produksjon på startsiden"
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr "Vis utløpt lagerbeholdning"
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr "Vis utløpte lagervarer på startsiden"
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr "Vis foreldet lagerbeholdning"
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr "Vis foreldet lagerbeholdning på startsiden"
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr "Vis ventende produksjoner"
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr "Vi ventende produksjoner på startsiden"
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr "Vis forfalte produksjoner"
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr "Vis forfalte produksjoner på startsiden"
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr "Vis utestående Innkjøpsordrer"
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr "Vis utestående Innkjøpsordrer på startsiden"
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr "Vis forfalte Innkjøpsordrer"
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr "Vis forfalte Innkjøpsordrer på startsiden"
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr "Vis utestående Salgsordrer"
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr "Vis utestående Salgsordrer på startsiden"
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr "Vis forfalte SOer"
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr "Vis forfalte SOer på startsiden"
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr "Vis ventende SO-forsendelser"
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr "Vis ventende SO-forsendelser på startsiden"
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr "Vis Nyheter"
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr "Vis nyheter på startsiden"
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr "Innebygd etikettvisning"
-#: common/models.py:2332
+#: common/models.py:2333
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:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr "Standard etikettskriver"
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr "Konfigurer hvilken etikettskriver som skal være valgt som standard"
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr "Innebygd rapportvisning"
-#: common/models.py:2348
+#: common/models.py:2349
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:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr "Søk i Deler"
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr "Vis deler i forhåndsvsningsvinduet for søk"
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr "Søk i Leverandørdeler"
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr "Vis leverandørdeler i forhåndsvisningsvinduet for søk"
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr "Søk i Produsentdeler"
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr "Vis produsentdeler i forhåndsvisningsvinduet for søk"
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr "Skjul Inaktive Deler"
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr "Ekskluder inaktive deler fra forhåndsvisningsvinduet for søk"
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr "Søk i kategorier"
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr "Vis delkategorier i forhåndsvisningsvinduet for søk"
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr "Søk i lagerbeholdning"
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr "Vis lagervarer i forhåndsvisningsvinduet for søk"
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr "Skjul utilgjengelige Lagervarer"
-#: common/models.py:2392
+#: common/models.py:2393
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:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr "Søk i Plasseringer"
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr "Vis lagerplasseringer i forhåndsvisningsvinduet for søk"
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr "Søk i Firma"
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr "Vis firma i forhåndsvsningsvinduet for søk"
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr "Søk i Produksjonsordrer"
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr "Vis produksjonsordrer i forhåndsvisningsvinduet for søk"
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr "Søk i Innkjøpsordrer"
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr "Vis innkjøpsordrer i forhåndsvisningsvinduet for søk"
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr "Ekskluder inaktive Innkjøpsordrer"
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Ekskluder inaktive innkjøpsordrer fra forhåndsvisningsvinduet for søk"
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr "Søk i Salgsordrer"
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr "Vis salgsordrer i forhåndsvisningsvinduet for søk"
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr "Ekskluder Inaktive Salgsordrer"
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr "Ekskluder inaktive salgsordrer fra forhåndsvisningsvinduet for søk"
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr "Søk i Returordrer"
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr "Vis returordrer i forhåndsvisningsvinduet for søk"
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr "Ekskluder Inaktive Returordrer"
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr "Ekskluder inaktive returordrer fra forhåndsvisningsvinduet for søk"
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr "Forhåndsvisning av søkeresultater"
-#: common/models.py:2460
+#: common/models.py:2461
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:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr "Regex-søk"
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr "Aktiver regulære uttrykk i søkeord"
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr "Helordsøk"
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr "Søk returnerer resultater for treff med hele ord"
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr "Vis antall i skjemaer"
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr "Vis antall tilgjengelige deler i noen skjemaer"
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr "Escape-knappen lukker skjemaer"
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr "Bruk Escape-knappen for å lukke modal-skjemaer"
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr "Fast navigasjonsbar"
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr "Navigasjonsbarens posisjon er fast på toppen av skjermen"
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr "Datoformat"
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr "Foretrukket format for å vise datoer"
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Delplanlegging"
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr "Vis delplanleggingsinformasjon"
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Lagertelling for Del"
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr "Vis lagertellingsinformasjon for del (om lagertellingsfunksjonalitet er aktivert)"
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr "Tabellstrenglengde"
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr "Maksimal lengdegrense for tekst vist i tabeller"
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr "Motta feilrapporter"
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr "Motta varsler om systemfeil"
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Bruker"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr "Antall for prisbrudd"
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr "Antall for prisbrudd"
msgid "Price"
msgstr "Pris"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr "Enhetspris på spesifisert antall"
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr "Endepunkt"
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr "Endepunktet hvor denne webhooken er mottatt"
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr "Navn for webhooken"
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr "Er webhooken aktiv"
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr "Sjetong"
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr "Nøkkel for tilgang"
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr "Hemmelig"
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr "Delt hemmlighet for HMAC"
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr "Melding ID"
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr "Unik Id for denne meldingen"
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr "Vert"
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr "Verten denne meldingen ble mottatt fra"
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr "Tittel"
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr "Overskrift for denne meldingen"
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr "Brødtekst"
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr "Innholdet i meldingen"
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr "Endepunktet meldingen ble mottatt fra"
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr "Arbeidet med"
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr "Var arbeidet med denne meldingen ferdig?"
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Tittel"
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr "Tittel"
msgid "Link"
msgstr "Lenke"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr "Publisert"
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Sammendrag"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr "Les"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr "Er dette nyhetselementet lest?"
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "Bilde"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr "Bildefil"
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr "Enhetssymbolet må være unikt"
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr "Enhetsnavn må være en gyldig identifikator"
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr "Enhetsnavn"
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "Symbol"
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr "Valgfritt enhetssymbol"
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr "Definisjon"
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr "Enhetsdefinisjon"
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Vedlegg"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Fil mangler"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Mangler eksternlenke"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Velg fil å legge ved"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Kommentar"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr "Vedleggskommentar"
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr "Opplastet dato"
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr "Datoen som filen ble lastet opp"
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr "Filstørrelse"
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr "Filstørrelse i byte"
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr "Ugyldig modelltype spesifisert for vedlegg"
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr "Nøkkel"
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr "Artikler har blitt mottatt mot en returordre"
msgid "Error raised by plugin"
msgstr "Feil oppstått i utvidelse"
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr "Kjører"
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr "Ventende oppgaver"
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr "Planlagte oppgaver"
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr "Mislykkede oppgaver"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr "Oppgave-ID"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr "Unik oppgave-ID"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr "Lås"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr "Låsetidspunkt"
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr "Oppgavenavn"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr "Funksjon"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr "Funksjonsnavn"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr "Argumenter"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr "Oppgaveargumenter"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr "Nøkkelordargumenter"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr "Nøkkelordargumenter for oppgave"
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Filnavn"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr "Modelltype"
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr "Brukeren har ikke tillatelse tillatelse å opprette eller endre vedlegg for denne modellen"
@@ -4447,12 +4444,12 @@ msgstr "Lenke til adresseinformasjon (ekstern)"
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr "Produsentdeler"
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Basisdel"
@@ -4463,8 +4460,8 @@ msgstr "Velg del"
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr "Velg produsent"
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr "Parameternavn"
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr "Parameterverdi"
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr "Parameterenheter"
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr "Den sammenkoblede produsentdelen må referere til samme basisdel"
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr "Leverandør"
msgid "Select supplier"
msgstr "Velg leverandør"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr "Leverandørens lagerbeholdningsenhet"
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr "Leverandørens delbeskrivelse"
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr "Leverandørens delbeskrivelse"
msgid "Note"
msgstr "Notat"
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr "grunnkostnad"
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimum betaling (f.eks. lageravgift)"
@@ -4629,7 +4626,7 @@ msgstr "Pakkeantall"
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:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr "flere"
@@ -4661,7 +4658,7 @@ msgstr "Standardvaluta brukt for denne leverandøren"
msgid "Company Name"
msgstr "Bedriftsnavn"
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr "Slett bilde"
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr "Ingen leverandørinformasjon tilgjengelig"
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr "Antall enheter mottatt"
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr "Innkjøpspris"
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr "Brukeren som sjekket forsendelsen"
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr "Forsendelse"
@@ -5982,7 +5979,7 @@ msgstr "Ordrelinje"
msgid "Line item does not match purchase order"
msgstr "Linjeelementet samsvarer ikke med innkjøpsordre"
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr "Velg lagerplassering for mottatte enheter"
@@ -6019,7 +6016,7 @@ msgstr "Strekkode allerede i bruk"
msgid "An integer quantity must be provided for trackable parts"
msgstr "Heltallsverdi må angis for sporbare deler"
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr "Linjeelementer må være oppgitt"
@@ -6051,39 +6048,39 @@ msgstr "Mengden må være positiv"
msgid "Enter serial numbers to allocate"
msgstr "Skriv inn serienummer for å tildele"
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr "Forsendelsen er allerede sendt"
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr "Forsendelsen er ikke knyttet til denne ordren"
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr "Ingen treff funnet for følgende serienummer"
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
-msgstr "Følgende serienummer er allerede tildelt"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
+msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr "Returordrelinje"
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr "Linjeelementet samsvarer ikke med returordre"
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr "Linjeelementet er allerede mottatt"
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr "Artikler kan bare mottas mot ordrer som pågår"
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr "Valuta for linje"
@@ -6510,7 +6507,7 @@ 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:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr "Del-bilde"
msgid "Category ID"
msgstr "Kategori-ID"
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr "Kategorinavn"
@@ -6562,18 +6559,18 @@ msgstr "Minimal lagerbeholdning"
msgid "Used In"
msgstr "Brukt i"
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr "Produseres"
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr "Minimal kostnad"
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr "Maksimal kostnad"
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr "Sti til kategori"
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr "Overodnet IPN"
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Minstepris"
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr "Standard plassering"
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Total lagerbeholdning"
@@ -6755,7 +6752,7 @@ msgstr "Total lagerbeholdning"
msgid "Input quantity for price calculation"
msgstr "Sett inn antall for prisberegning"
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Delkategori"
@@ -6878,7 +6875,7 @@ msgstr "Del med dette Navnet, internt delnummer og Revisjon eksisterer allerede.
msgid "Parts cannot be assigned to structural part categories!"
msgstr "Deler kan ikke tilordnes strukturelle delkategorier!"
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr "Delnavn"
@@ -6906,7 +6903,7 @@ msgstr "Del-nøkkelord for å øke synligheten i søkeresultater"
msgid "Part category"
msgstr "Delkategori"
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr "Delrevisjon eller versjonsnummer"
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr "Eier ansvarlig for denne delen"
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr "Siste lagertelling"
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr "Selg flere"
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr "Valuta som brukes til å bufre prisberegninger"
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr "Minimal BOM-kostnad"
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr "Minste kostnad for komponentdeler"
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr "Maksimal BOM-kostnad"
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr "Maksimal kostnad for komponentdeler"
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr "Minimal innkjøpskostnad"
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr "Minimal historisk innkjøpskostnad"
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr "Maksimal innkjøpskostnad"
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr "Maksimal historisk innkjøpskostnad"
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr "Minimal intern pris"
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr "Minimal kostnad basert på interne prisbrudd"
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr "Maksimal intern pris"
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr "Maksimal kostnad basert på interne prisbrudd"
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr "Minimal leverandørpris"
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr "Minimumspris for del fra eksterne leverandører"
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr "Maksimal leverandørpris"
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr "Maksimalpris for del fra eksterne leverandører"
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr "Minimal Variantkostnad"
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr "Beregnet minimal kostnad for variantdeler"
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr "Maksimal Variantkostnad"
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr "Beregnet maksimal kostnad for variantdeler"
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr "Overstyr minstekostnad"
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr "Overstyr maksimal kostnad"
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr "Beregnet samlet minimal kostnad"
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr "Beregnet samlet maksimal kostnad"
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr "Minimal salgspris"
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr "Minimal salgspris basert på prisbrudd"
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr "Maksimal Salgspris"
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr "Maksimal salgspris basert på prisbrudd"
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr "Minimal Salgskostnad"
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr "Minimal historisk salgspris"
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr "Maksimal Salgskostnad"
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr "Maksimal historisk salgspris"
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr "Del for varetelling"
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr "Antall"
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr "Antall individuelle lagerenheter på tidspunkt for varetelling"
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling"
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling"
msgid "Date"
msgstr "Dato"
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr "Dato for utført lagertelling"
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr "Flere notater"
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr "Bruker som utførte denne lagertellingen"
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr "Minimal lagerkostnad"
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr "Estimert minimal kostnad for lagerbeholdning"
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr "Maksimal lagerkostnad"
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr "Estimert maksimal kostnad for lagerbeholdning"
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr "Rapport"
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr "Lagertellingsrapportfil (generert internt)"
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr "Antall deler"
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr "Antall deler dekket av varetellingen"
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr "Bruker som forespurte varetellingsrapporten"
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr "Valg må være unike"
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr "Testnavn"
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr "Angi et navn for testen"
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr "Testbeskrivelse"
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr "Legg inn beskrivelse for denne testen"
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr "Aktivert"
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr "Påkrevd"
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr "Er det påkrevd at denne testen bestås?"
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr "Krever verdi"
-#: part/models.py:3647
+#: part/models.py:3634
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:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr "Krever vedlegg"
-#: part/models.py:3654
+#: part/models.py:3641
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:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr "Valg"
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr "Sjekkboksparameter kan ikke ha enheter"
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr "Sjekkboksparameter kan ikke ha valg"
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr "Navn på parametermal må være unikt"
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr "Parameternavn"
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr "Fysisk enheter for denne parameteren"
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr "Parameterbeskrivelse"
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr "Sjekkboks"
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr "Er dette parameteret en sjekkboks?"
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr "Gyldige valg for denne parameteren (kommaseparert)"
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr "Ugyldig valg for parameterverdi"
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr "Overordnet del"
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Parametermal"
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr "Parameterverdi"
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Standardverdi"
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr "Standard Parameterverdi"
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr "Del-ID eller delnavn"
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr "Unik del-ID-verdi"
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr "Delens interne delnummerverdi"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr "Nivå"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr "BOM-nivå"
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr "Velg overordnet del"
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr "Underordnet del"
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr "Velg del som skal brukes i BOM"
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr "BOM-antall for denne BOM-artikkelen"
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr "Denne BOM-artikkelen er valgfri"
-#: part/models.py:4279
+#: part/models.py:4266
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:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Svinn"
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Forventet produksjonssvinn (absolutt eller prosent)"
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr "BOM-artikkelreferanse"
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr "BOM-artikkelnotater"
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr "Kontrollsum"
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr "BOM-linje kontrollsum"
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr "Godkjent"
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr "Denne BOM-artikkelen er godkjent"
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr "Arves"
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Denne BOM-artikkelen er arvet fra stykkliste for variantdeler"
-#: part/models.py:4327
+#: part/models.py:4314
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:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr "Antall må være heltallsverdi for sporbare deler"
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr "Underordnet del må angis"
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr "BOM-artikkel erstatning"
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr "Erstatningsdel kan ikke være samme som hoveddelen"
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr "Overordnet BOM-artikkel"
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr "Erstatningsdel"
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr "Del 1"
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr "Del 2"
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr "Velg relatert del"
-#: part/models.py:4647
+#: part/models.py:4640
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:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr "Duplikatforhold eksisterer allerede"
@@ -7571,326 +7568,326 @@ msgstr "Innkjøpsvaluta for lagervaren"
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr "Ingen deler valgt"
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr "Velg kategori"
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr "Original Del"
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr "Velg original del å duplisere"
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr "Kopier Bilde"
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr "Kopier bilde fra originaldel"
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr "Kopier Stykkliste"
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr "Kopier stykkliste fra original del"
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr "Kopier parametere"
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr "Kopier parameterdata fra originaldel"
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr "Kopier notater"
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr "Kopier notater fra originaldel"
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr "Innledende lagerbeholdning"
-#: part/serializers.py:527
+#: part/serializers.py:525
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:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr "Innledende lagerplassering"
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr "Angi initiell lagerplasering for denne delen"
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr "Velg leverandør (eller la stå tom for å hoppe over)"
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Velg produsent (eller la stå tom for å hoppe over)"
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr "Produsentens delenummer"
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr "Valgt firma er ikke en gyldig leverandør"
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr "Valgt firma er ikke en gyldig produsent"
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr "Produsentdel som matcher dette MPN-et, finnes allerede"
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr "Leverandørdel som matcher denne SKU-en, finnes allerede"
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr "Dupliser del"
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr "Kopier innledende data fra en annen del"
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr "Innledende lagerbeholdning"
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr "Lag en del med innledende lagermengde"
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr "Leverandøropplysninger"
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr "Legg til innledende leverandørinformasjon for denne delen"
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr "Kopier kategoriparametre"
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr "Kopier parametermaler fra valgt delkategori"
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr "Eksisterende bilde"
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr "Filnavn for et eksisterende del-bilde"
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr "Bildefilen finnes ikke"
-#: part/serializers.py:1215
+#: part/serializers.py:1213
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:1225
+#: part/serializers.py:1223
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:1235
+#: part/serializers.py:1233
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:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr "Ekskluder ekstern lagerbeholdning"
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr "Ekskluder lagervarer i eksterne lokasjoner"
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr "Generer rapport"
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr "Genererer rapport som inneholder beregnede lagerdata"
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr "Oppdater deler"
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr "Oppdater spesifiserte deler med beregnede lagerbeholdningsdata"
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr "Lagerbeholdningsfunksjonalitet er ikke aktivert"
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr "Overstyr beregnet verdi for minimumspris"
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr "Valuta for minstepris"
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr "Overstyr beregnet verdi for maksimal pris"
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr "Valuta for maksimal pris"
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr "Oppdater"
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr "Oppdater priser for denne delen"
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, 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:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr "Minsteprisen kan ikke være større enn maksimal pris"
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr "Maksimal pris kan ikke være mindre enn minstepris"
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr "Kan Produsere"
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr "Velg del å kopiere BOM fra"
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr "Fjern eksisterende data"
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr "Fjern eksisterende BOM-artikler før kopiering"
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr "Inkluder arvede"
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr "Inkluder BOM-artikler som er arvet fra maldeler"
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr "Hopp over ugyldige rader"
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr "Aktiver dette alternativet for å hoppe over ugyldige rader"
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr "Kopier erstatningsdeler"
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Kopier erstatningsdeler når BOM-elementer dupliseres"
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr "Nullstill eksisterende BOM"
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr "Fjern eksisterende BOM-artikler før opplastning"
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr "Ingen del-kolonne angitt"
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr "Flere samsvarende deler funnet"
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr "Ingen samsvarende del funnet"
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr "Delen er ikke betegnet som en komponent"
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr "Antall ikke oppgitt"
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr "Ugyldig antall"
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr "Minst en BOM-artikkel kreves"
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr "Abonner på varsler for denne delen"
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr "Skriv ut etikett"
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr "Vis prisinformasjon"
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr "Lagerhandlinger"
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr "Tildelt til produksjonsordrer"
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr "Tildelt til Salgsordrer"
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr "Siste serienummer"
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr "Søk etter serienummer"
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr "Rediger"
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr "Bilde for del ikke funnet"
msgid "Part Pricing"
msgstr "Delprising"
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr "Kantlinjer"
msgid "Print a border around each label"
msgstr "Skriv ut en kant rundt hver etikett"
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr "Liggende"
@@ -9012,44 +9009,44 @@ msgstr "Gir støtte for å skanne TME-strekkoder"
msgid "The Supplier which acts as 'TME'"
msgstr "Leverandøren som fungerer som \"TME\""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr "Installasjon av utvidelse vellykket"
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Installerte utvidelsen til {path}"
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr "Innebygd utvidelse"
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr "Eksempel valutakonverterings-utvidelse"
msgid "InvenTree Contributors"
msgstr "InvenTree-bidragsytere"
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr "Kilde-URL"
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr "Ingen gyldige objekter angitt for mal"
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr "Malfil '{template}' mangler eller eksisterer ikke"
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr "Filnavnmønster"
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr "Filtre"
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr "Sidestørrelse for PDF-rapporter"
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr "Generer rapport i landskapsorientering"
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr "Bredde [mm]"
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr "Etikettbredde, spesifisert i mm"
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr "Høyde [mm]"
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr "Etiketthøyde, spesifisert i mm"
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr "Snutt"
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr "Rapportsnuttfil"
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr "Filbeskrivelse for snutt"
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr "Ressurs"
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr "Rapportressursfil"
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr "Ressursfilbeskrivelse"
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr "Testresultater"
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr "Resultat"
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr "Kunde-ID"
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr "Installert i"
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr "Slett når oppbrukt"
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr "Utløpsdato"
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr "Utløpsdato etter"
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr "Foreldet"
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr "Lagerplasseringer"
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr "Eier"
@@ -9826,7 +9891,7 @@ msgstr "Kildeproduksjon"
msgid "Build for this stock item"
msgstr "Produksjon for denne lagervaren"
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr "Brukt av"
@@ -9891,7 +9956,7 @@ msgstr "Antallet stemmer ikke overens med serienumrene"
msgid "Serial numbers already exist"
msgstr "Seriernummer eksisterer allerede"
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr "Lagerstatuskoder må være like"
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:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr "Oppføringsnotater"
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr "Verdi må angis for denne testen"
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr "Vedlegg må lastes opp for denne testen"
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr "Testresultat"
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr "Testens verdi"
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr "Vedlegg til testresultat"
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr "Testnotater"
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr "Serienummeret er for høyt"
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr "Overodnet element"
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "Bruk pakningsstørrelse når du legger til: antall definert er antall pakker"
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr "Utløpt"
@@ -10410,7 +10475,7 @@ msgstr "Denne lagervaren har ikke noen underordnede lagervarer"
msgid "Test Data"
msgstr "Testdata"
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr "Testrapport"
@@ -10450,200 +10515,204 @@ msgstr "Finn lagervare"
msgid "Scan to Location"
msgstr "Skann til plassering"
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr "Utskriftshandlinger"
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr "Lagerjusteringshandlinger"
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: 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
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr "Legg til lagerbeholdning"
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr "Fjern lagerbeholdning"
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr "Serialiser lager"
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: 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
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr "Tilordne til kunde"
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr "Returner til Lager"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr "Avinstaller lagervare"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr "Avinstaller"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr "Installer lagervare"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr "Installer"
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr "Konvertert til variant"
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr "Duplisert lagervare"
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr "Rediger lagervare"
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr "Slett lagervare"
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Produksjon"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr "Ingen produsent valgt"
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr "Du er ikke i eierlisten til dette elementet. Denne lagervaren kan ikke redigeres."
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr "Kun lesetilgang"
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr "Lagervaren er utilgjengelig"
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr "Denne lagervaren er under produksjon og kan ikke endres."
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr "Rediger lagervaren fra produksjonsvinduet."
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr "Denne lagervaren er tildelt til Salgsordre"
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr "Denne lagervaren er tildelt til Produksjonsordre"
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr "Denne lagervaren er serialisert. Den har et unikt serienummer, og antallet kan ikke justeres"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr "forrige side"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr "Gå til forrige serienummer"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr "neste side"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr "Gå til neste serienummer"
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr "Ingen plassering satt"
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr "Tester"
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr "Denne lagervaren har ikke bestått alle påkrevde tester"
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr "Denne lagervaren utløp %(item.expiry_date)s"
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Denne lagervaren utløper %(item.expiry_date)s"
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr "Ingen lagertelling utført"
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr "Velg en av variantdelene oppført under."
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr "Advarsel"
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr "Denne handlingen er vanskelig å omgjøre"
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr "Ny plasseringstype"
@@ -11367,7 +11436,7 @@ msgstr "Innstillinger for salgsordre"
msgid "Stock Settings"
msgstr "Instillinger for lager"
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr "Lagerplasseringstyper"
@@ -11852,23 +11921,23 @@ msgstr "Legg til vedlegg"
msgid "Barcode Identifier"
msgstr "Strekkode-identifikator"
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr "Omstart av server kreves"
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr "En konfigurasjonsinnstilling har blitt endret som krever en omstart av serveren"
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr "Kontakt systemadministratoren for mer informasjon"
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr "Ventende database-migrasjoner"
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr "Det er ventende database-migrasjoner som krever oppmerksomhet"
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po
index 6afa37ec0459..72615dc66a48 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "chiński (tradycyjny)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] Logowanie do aplikacji"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Duplikaty nazw nie mogą istnieć pod tym samym rodzicem"
msgid "Invalid choice"
msgstr "Błędny wybór"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Nazwa"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Błąd serwera"
msgid "An error has been logged by the server."
msgstr "Błąd został zapisany w logach serwera."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Numer musi być prawidłowy"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Wybierz walutę z dostępnych opcji"
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr "Aktywny"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "Nie masz uprawnień do zmiany tej roli użytkownika."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Tylko superużytkownicy mogą tworzyć nowych użytkowników"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "Twoje konto zostało utworzone."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "Zresetuj hasło"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "Witamy w InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Nieprawidłowa wartość"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Plik danych"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Wybierz plik danych do przesłania"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Nieobsługiwany typ pliku"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Plik jest zbyt duży"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Nie znaleziono kolumn w pliku"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Nie znaleziono wierszy danych w pliku"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Nie podano wierszy danych"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Nie podano kolumn danych"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Brakuje wymaganej kolumny: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Zduplikowana kolumna: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Obrazek zewnętrzny"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "Adres URL zdalnego pliku obrazu"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "Pobieranie obrazów ze zdalnego URL nie jest włączone"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Sprawdzenie robotnika w tle nie powiodło się"
@@ -759,7 +759,7 @@ msgstr ""
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:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "Kompilacja musi zostać anulowana, zanim będzie mogła zostać usunięt
msgid "Consumable"
msgstr "Materiał eksploatacyjny"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "Opcjonalne"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr "Przydzielono"
msgid "Available"
msgstr "Dostępne"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Dostępne"
msgid "Build Order"
msgstr "Zlecenie Budowy"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr "Odwołanie do zamówienia wykonania"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr "Użytkownik lub grupa odpowiedzialna za te zlecenie produkcji"
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Link Zewnętrzny"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
@@ -1110,7 +1110,7 @@ msgstr "Kolejność kompilacji {build} została zakończona"
msgid "A build order has been completed"
msgstr "Kolejność kompilacji została zakończona"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "Nie określono danych wyjściowych budowy"
@@ -1122,37 +1122,37 @@ msgstr "Budowanie wyjścia jest już ukończone"
msgid "Build output does not match Build Order"
msgstr "Skompilowane dane wyjściowe nie pasują do kolejności kompilacji"
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "Ilość musi być większa niż zero"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr "Ilość nie może być większa niż ilość wyjściowa"
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, 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:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr "Zbuduj obiekt"
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr "Zbuduj obiekt"
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr "Zbuduj obiekt"
msgid "Quantity"
msgstr "Ilość"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr "Wymagana ilość dla zlecenia produkcji"
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, 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:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "Pozycja magazynowa jest nadmiernie przydzielona"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "Alokowana ilość musi być większa niż zero"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "Ilość musi wynosić 1 dla serializowanych zasobów"
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr "Wybrana pozycja magazynowa nie pasuje do pozycji w zestawieniu BOM"
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr "Wybrana pozycja magazynowa nie pasuje do pozycji w zestawieniu BOM"
msgid "Stock Item"
msgstr "Element magazynowy"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Lokalizacja magazynowania przedmiotu"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Ilość zapasów do przydzielenia do produkcji"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Zainstaluj do"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Docelowa lokalizacja magazynowa przedmiotu"
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr "Nazwa komponentu"
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr "Opakowanie"
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr "ID komponentu"
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr "IPN komponentu"
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr "Numer Seryjny"
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr "Możliwość śledzenia"
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046
#: templates/js/translated/build.js:2714
msgid "Allow Variants"
msgstr "Zezwalaj na warianty"
-#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr "Element BOM"
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr "W Zamówieniu"
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr "W produkcji"
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "Anulowano"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Zakończono"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr "Jak często aktualizować kursy wymiany walut (ustaw zero aby wyłączy
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "dni"
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr "Komponent"
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "Rozmiar strony"
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr "Domyślna wielkość strony dla raportów PDF"
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr "Włącz generowanie raportów testów"
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr "Automatycznie wypełniaj zlecenia zakupu"
-#: common/models.py:1948
+#: common/models.py:1934
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:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr "Włącz opcję zapomnianego hasła"
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr "Włącz funkcję zapomnianego hasła na stronach logowania"
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr "Włącz rejestrację"
-#: common/models.py:1962
+#: common/models.py:1948
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:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr "Włącz SSO"
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr "Włącz SSO na stronach logowania"
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "Adres e-mail jest wymagany"
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr "Autouzupełnianie użytkowników SSO"
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Automatycznie wypełnij dane użytkownika z danych konta SSO"
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr "E-mail dwa razy"
-#: common/models.py:2028
+#: common/models.py:2014
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:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr "Hasło dwukrotnie"
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich hasło"
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr "Grupuj przy rejestracji"
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr "Wymuś MFA"
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr "Użytkownicy muszą używać zabezpieczeń wieloskładnikowych."
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr "Sprawdź wtyczki przy starcie"
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr "Włącz integrację URL"
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr "Włącz wtyczki, aby dodać ścieżki URL"
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr "Włącz integrację z aplikacją"
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr "Włącz wtyczki, aby dodać aplikacje"
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr "Włącz wtyczki, aby uruchamiać zaplanowane zadania"
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter"
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr "Pokaż obserwowane części"
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr "Pokaż obserwowane części na stronie głównej"
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr "Pokaż obserwowane kategorie"
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr "Pokaż obserwowane kategorie części na stronie głównej"
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr "Pokaż najnowsze części"
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr "Pokaż najnowsze części na stronie głównej"
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr "Pokaż niski stan magazynowy"
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr "Pokaż elementy o niskim stanie na stronie głównej"
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr "Pokaż wymagany stan zapasów"
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr "Szukaj części"
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr "Ukryj nieaktywne części"
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr "Wyszukaj zlecenia zakupu"
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr "Wyklucz nieaktywne zlecenia zakupu"
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr "Pokaż ilość w formularzach"
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr "Stały pasek nawigacyjny"
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr "Format daty"
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr "Preferowany format wyświetlania dat"
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Planowanie komponentów"
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Użytkownik"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr "Cena"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr "Punkt końcowy"
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr "Sekret"
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr "Współdzielony sekret dla HMAC"
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr "Id wiadomości"
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr "Unikalny identyfikator dla tej wiadomości"
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr "Host, od którego otrzymano tę wiadomość"
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr "Nagłówek"
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr "Nagłówek tej wiadomości"
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr "Zawartość"
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr "Łącze"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "Obraz"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Załącznik"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Brak pliku"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Brak zewnętrznego odnośnika"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Wybierz plik do załączenia"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Komentarz"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr "Klucz"
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr "Jest uruchomiony"
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr "Oczekujce zadania"
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr "Zaplanowane zadania"
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr "Zadania zakończone błędem"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr "ID zadania"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr "Unikalny identyfikator zadania"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr "Blokada"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr "Czas blokady"
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr "Nazwa zadania"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr "Funkcja"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr "Nazwa funkcji"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr "Argumenty"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr "Argumenty zadania"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Nazwa pliku"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr "Komponent producenta"
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Część bazowa"
@@ -4463,8 +4460,8 @@ msgstr "Wybierz część"
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr "Wybierz producenta"
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr "Nazwa parametru"
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr "Wartość parametru"
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr "Jednostki parametru"
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr "Dostawca"
msgid "Select supplier"
msgstr "Wybierz dostawcę"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr "Uwaga"
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr "koszt podstawowy"
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr "Ilość w opakowaniu"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr "wielokrotność"
@@ -4661,7 +4658,7 @@ msgstr "Domyślna waluta używana dla tego dostawcy"
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr "Usuń obraz"
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr "Dane"
@@ -5473,7 +5470,7 @@ msgstr "Zamówienie oczekujące"
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr "Cena zakupu"
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr "Użytkownik, który sprawdził tę wysyłkę"
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr "Przesyłka"
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr "Pozycja nie pasuje do zlecenia zakupu"
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr "ID kategorii"
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr "Minimalny stan magazynowy"
msgid "Used In"
msgstr "Użyte w"
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr "Ścieżka kategorii"
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr "Domyślna lokalizacja"
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Kategoria komponentu"
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr "Nazwa komponentu"
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr "Ostatnia inwentaryzacja"
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr "Sprzedaj wiele"
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr "Data"
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr "Nazwa testu"
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr "Testowy opis"
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr "Wprowadź opis do tego testu"
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr "Aktywne"
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr "Wymaga wartości"
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr "Wymaga załącznika"
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr "Część nadrzędna"
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr "Wartość parametru"
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Wartość domyślna"
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr "Unikalny wartość ID komponentu"
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr "Wartość IPN części"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr "Poziom"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr "Wybierz część nadrzędną"
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr "Podczęść"
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr "Ten element BOM jest opcjonalny"
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr "Notatki pozycji BOM"
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr "Suma kontrolna"
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr "Zatwierdzone"
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr "Część zastępcza"
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr "Część 1"
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr "Część 2"
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr "Wybierz powiązaną część"
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr "Waluta zakupu tego towaru"
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr "Kopiuj obraz"
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr "Kopiuj BOM"
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr "Kopiuj parametry"
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr "Duplikuj część"
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr "Usuń istniejące dane"
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr "Pomiń nieprawidłowe wiersze"
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze"
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr "Wyczyść istniejący BOM"
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr "Nie podano ilości"
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr "Nieprawidłowa ilość"
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
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/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr "Drukuj etykietę"
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr "Pokaż informacje o cenach"
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr "Akcje magazynowe"
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr "Przypisane do zamówień sprzedaży"
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr "Ostatni numer seryjny"
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr "Szukaj numeru seryjnego"
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr "Nie znaleziono obrazka części"
msgid "Part Pricing"
msgstr "Cennik części"
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr "Wtyczka wbudowana"
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr "Źródłowy adres URL"
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr "Brak prawidłowych obiektów do szablonu"
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr "Plik szablonu '{template}' jest brakujący lub nie istnieje"
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr "Wzór nazwy pliku"
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr "Filtry"
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr "Domyślna wielkość strony dla raportów PDF"
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr "Renderuj raport w orientacji poziomej"
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr "Szerokość [mm]"
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr "Wysokość [mm]"
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr "Wycinek"
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr "Wynik"
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr "Zainstalowane w"
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr "Data ważności"
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr "Lokacje stanu magazynowego"
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr "Właściciel"
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr "Numer seryjny już istnieje"
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr "Notatki do wpisu"
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr "Należy podać wartość dla tego testu"
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr "Wynik testu"
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr "Element nadrzędny"
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr "Termin minął"
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr "Skanuj do lokacji"
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr "Akcje druku"
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: 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
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr "Usuń stan magazynowy"
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: 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
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr "Odinstaluj"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr "Zainstaluj"
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Budowa"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr "Nie ustawiono producenta"
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr "Tylko do odczytu"
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr "poprzednia strona"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr "następna strona"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr "Lokacje nie są ustawione"
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr "Testy"
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr "Ostrzeżenie"
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr "Dodaj załącznik"
msgid "Barcode Identifier"
msgstr "Skaner kodów"
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr "Wymagane ponowne uruchomienie serwera"
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr "Zmieniono opcję konfiguracji, która wymaga ponownego uruchomienia serwera"
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr "Skontaktuj się z administratorem systemu w celu uzyskania dalszych informacji"
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po
index e3c5494a8539..ff593db9e8bc 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Language: pt_PT\n"
@@ -65,9 +65,9 @@ msgstr "Insira uma 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Chinês (Tradicional)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] Entre no aplicativo"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Nomes duplicados não podem existir sob o mesmo parental"
msgid "Invalid choice"
msgstr "Escolha inválida"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Nome"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Erro de servidor"
msgid "An error has been logged by the server."
msgstr "Log de erro salvo pelo servidor."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Preicsa ser um numero valido"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Selecione a Moeda nas opções disponíveis"
msgid "Username"
msgstr "Nome de usuário"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "Primeiro Nome"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "Sobrenome"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr "Ativo"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "Não tem permissões para alterar este papel do usuário."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Apenas superusuários podem criar novos usuários"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "Sua conta foi criada."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "Por favor, use a função de redefinir senha para acessar"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "Bem-vindo(a) ao InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Valor inválido"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Arquivo de dados"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Selecione um arquivo de dados para enviar"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Tipo de arquivo não suportado"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "O arquivo é muito grande"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Nenhuma coluna encontrada no arquivo"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Nenhuma linha de dados encontrada no arquivo"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Nenhuma linha de dados fornecida"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Nenhuma coluna de dados fornecida"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Falta a coluna obrigatória: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Coluna duplicada: \"{col}\""
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Imagens Remota"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "URL do arquivo de imagem remoto"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "Baixar imagens de URL remota não está habilitado"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Falha em verificar o histórico do trabalhador"
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr "Produção deve ser cancelada antes de ser deletada"
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "Produção deve ser cancelada antes de ser deletada"
msgid "Consumable"
msgstr "Consumível"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "Opcional"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr "Alocado"
msgid "Available"
msgstr "Disponível"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Disponível"
msgid "Build Order"
msgstr "Ordem de Produção"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr "Referência do pedido de produção"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "Pedido de produção para qual este serviço está alocado"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr "Usuário ou grupo responsável para este pedido de produção"
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Link Externo"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Link para URL externa"
@@ -1110,7 +1110,7 @@ msgstr "O Pedido de produção {build} foi concluído!"
msgid "A build order has been completed"
msgstr "Um pedido de produção foi concluído"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "Nenhuma saída de produção especificada"
@@ -1122,37 +1122,37 @@ msgstr "Saída de produção já completada"
msgid "Build output does not match Build Order"
msgstr "Saída da produção não corresponde ao Pedido de Produção"
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "Quantidade deve ser maior que zero"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr "Quantidade não pode ser maior do que a quantidade de saída"
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "O item de produção {serial} não passou todos os testes necessários"
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr "Item da linha de Produção"
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr "Objeto de produção"
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr "Objeto de produção"
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr "Objeto de produção"
msgid "Quantity"
msgstr "Quantidade"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr "Quantidade necessária para o pedido de produção"
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Item de produção deve especificar a saída, pois peças mestres estão marcadas como rastreáveis"
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Quantidade alocada ({q}) não deve exceder a quantidade disponível em estoque ({a})"
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "O item do estoque está sobre-alocado"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "Quantidade alocada deve ser maior que zero"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "Quantidade deve ser 1 para estoque serializado"
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr "Item estoque selecionado não coincide com linha da LDM"
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr "Item estoque selecionado não coincide com linha da LDM"
msgid "Stock Item"
msgstr "Item de estoque"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Origem do item em estoque"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Quantidade do estoque para alocar à produção"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Instalar em"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Destino do Item do Estoque"
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr "Nome da Peça"
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "Digite os números de série para saídas de produção"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr "Local para saídas de produção concluídas"
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr "Saída de produção deve ser definida para alocação de peças rastrea
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Saída de produção deve ser definida para alocação de peças não rastreadas"
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr "Alocação do Item precisa ser fornecida"
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr "Embalagem"
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr "ID da Peça"
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr "IPN da Peça"
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr "Número de Sério"
msgid "Allocated Quantity"
msgstr "Quantidade Alocada"
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr "Quantidade Disponível"
@@ -1667,13 +1667,13 @@ msgstr "Rastreável"
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046
#: templates/js/translated/build.js:2714
msgid "Allow Variants"
msgstr "Permitir variações"
-#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr "Item LDM"
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr "Estoque Alocado"
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr "Estoque Alocado"
msgid "On Order"
msgstr "No pedido"
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr "Em Produção"
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "Cancelado"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Completado"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr "Excluir produção"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr "Saídas Concluídas"
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr "Peças alocadas"
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr "Saídas Incompletas"
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr "É uma Ligação"
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr "É um arquivo"
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr "O Utilizador não tem permissão para remover este anexo"
@@ -2352,8 +2349,8 @@ msgstr "Com que frequência atualizar as taxas de câmbio (defina como zero para
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "dias"
@@ -2581,9 +2578,9 @@ msgstr "Copiar Parâmetros dos Modelos de Categoria"
msgid "Copy category parameter templates when creating a part"
msgstr "Copiar parâmetros do modelo de categoria quando criar uma peça"
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr "Peças podem ser montadas a partir de outros componentes por padrão"
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr "Componente"
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Registro de erros que ocorrem ao gerar relatórios"
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "Tamanho da página"
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr "Tamanho padrão da página PDF para relatórios"
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr "Ativar Relatórios Teste"
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr "Ativar geração de relatórios de teste"
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr "Anexar Relatórios de Teste"
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr "Quando imprimir um Relatório de Teste, anexar uma cópia do mesmo ao item de estoque associado"
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr "Seriais Únicos Globais"
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr "Números de série para itens de estoque devem ser globalmente únicos"
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr "Preenchimento automático de Números Seriais"
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr "Preencher números de série automaticamente no formulário"
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr "Excluir Estoque Esgotado"
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr "Determina o comportamento padrão quando um item de estoque é esgotado"
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr "Modelo de Código de Lote"
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr "Modelo para gerar códigos de lote padrão para itens de estoque"
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr "Validade do Estoque"
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr "Ativar função de validade de estoque"
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr "Vender estoque expirado"
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr "Permitir venda de estoque expirado"
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr "Tempo de Estoque Inativo"
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr "Número de dias em que os itens em estoque são considerados obsoleto antes de vencer"
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr "Produzir Estoque Vencido"
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr "Permitir produção com estoque vencido"
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr "Controle de propriedade do estoque"
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr "Ativar controle de propriedade sobre locais e itens de estoque"
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr "Ícone padrão do local de estoque"
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr "Ícone padrão de local de estoque (vazio significa sem ícone)"
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr "Mostrar Itens de Estoque Instalados"
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr "Exibir itens de estoque instalados nas tabelas de estoque"
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr "Verificar BOM ao instalar itens"
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr "Itens de estoque instalados devem existir na BOM para a peça parente"
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr "Permitir Transferência Fora do Estoque"
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr "Permitir que os itens que não estão em estoque sejam transferidos entre locais de estoque"
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr "Modelo de Referência de Pedidos de Produção"
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr "Modelo necessário para gerar campo de referência do Pedido de Produção"
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr "Requer Proprietário Responsável"
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr "Um proprietário responsável deve ser atribuído a cada ordem"
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr "Bloquear até os Testes serem Aprovados"
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Impedir que as saídas da produção sejam concluídas até que todos os testes sejam aprovados"
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr "Ativar Pedidos de Devolução"
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr "Ativar funcionalidade de pedido de retorno na interface do usuário"
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr "Modelo de Referência de Pedidos de Devolução"
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr "Editar os Pedidos de Devolução Concluídos"
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr "Permitir a edição de pedidos de devolução após serem enviados ou concluídos"
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr "Modelo de Referência de Pedidos de Venda"
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr "Modelo necessário para gerar campo de referência do Pedido de Venda"
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr "Envio Padrão de Pedidos de Venda"
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr "Habilitar criação de envio padrão com Pedidos de Vendas"
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr "Editar os Pedidos de Vendas concluídos"
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Permitir a edição de pedidos de vendas após serem enviados ou concluídos"
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr "Modelo de Referência de Pedidos de Compras"
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Modelo necessário para gerar campo de referência do Pedido de Compra"
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr "Editar Pedidos de Compra Concluídos"
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Permitir a edição de pedidos de compras após serem enviados ou concluídos"
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr "Autocompletar Pedidos de Compra"
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Marcar automaticamente os pedidos de compra como concluídos quando todos os itens de linha forem recebidos"
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr "Habitar esquecer senha"
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr "Habilitar a função \"Esqueci minha senha\" nas páginas de acesso"
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr "Habilitar cadastro"
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr "Ativar auto-registro para usuários na página de entrada"
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr "Ativar SSO"
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr "Ativar SSO na página de acesso"
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr "Ativar registro SSO"
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Ativar auto-registro por SSO para usuários na página de entrada"
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "Email obrigatório"
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr "Exigir do usuário o e-mail no cadastro"
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr "Auto-preencher usuários SSO"
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Preencher automaticamente os detalhes do usuário a partir de dados da conta SSO"
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr "Enviar email duplo"
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr "No registro pedir aos usuários duas vezes pelo email"
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr "Senha duas vezes"
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr "No registro pedir aos usuários duas vezes pela senha"
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr "Domínios permitidos"
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Restringir registros a certos domínios (separados por vírgula, começando com @)"
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr "Grupo no cadastro"
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr "Forçar AMF"
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr "Os usuários devem usar uma segurança multifator."
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr "Checar extensões no início"
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Checar que todas as extensões instaladas no início — ativar em ambientes de contêineres"
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr "Verificar por atualizações de plugin"
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Habilitar verificações periódicas de atualizações para plugins instalados"
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr "Ativar integração URL"
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr "Ativar extensão para adicionar rotas URL"
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr "Ativar integração de navegação"
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr "Ativar extensões para integrar à navegação"
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr "Ativa integração com aplicativo"
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr "Ativar extensões para adicionar aplicativos"
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr "Ativar integração do calendário"
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr "Ativar extensões para executar tarefas agendadas"
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr "Ativar integração de eventos"
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr "Ativar extensões para responder a eventos internos"
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr "Habilitar códigos de projeto"
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr "Ativar códigos de projeto para rastrear projetos"
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr "Funcionalidade de Balanço do Inventário"
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr "Ativar funcionalidade de balanço para gravar níveis de estoque e calcular seu valor"
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr "Excluir Locais Externos"
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "Excluir itens de estoque em locais externos dos cálculos do estoque"
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr "Período de Balanço Automático"
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr "Número de dias entre gravação do balanço de estoque (coloque zero para desativar)"
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr "Intervalo para Excluir o Relatório"
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr "Relatórios de balanço serão apagados após um número de dias especificado"
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr "Mostrar nomes completos dos usuários"
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr "Mostrar Nomes Completos em vez de Nomes de Usuário"
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr "Senha de configurações (deve ser única — diferencia maiúsculas de minúsculas"
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr "Ocultar peças inativas"
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr "Ocultar peças inativas nos resultados exibidos na página inicial"
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr "Mostrar peças subscritas"
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr "Mostrar peças subscritas na tela inicial"
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr "Mostrar categorias subscritas"
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr "Mostrar categorias de peças subscritas na tela inicial"
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr "Mostrar peças mais recentes"
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr "Mostrar as peças mais recentes na página inicial"
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr "Mostrar LDMs que aguardam validação na página inicial"
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr "Mostrar alterações recentes de estoque"
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr "Mostrar itens de estoque alterados recentemente na página inicial"
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr "Mostrar estoque baixo"
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr "Mostrar itens de baixo estoque na página inicial"
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr "Mostrar estoque esgotado"
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr "Mostrar itens sem estoque na página inicial"
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr "Mostrar estoque necessário"
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr "Mostrar itens de estoque necessários para produções na tela inicial"
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr "Mostrar estoque expirado"
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr "Mostrar expirados itens em estoque na tela inicial"
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr "Mostrar estoque inativo"
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr "Mostrar estoque inativo na tela inicial"
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr "Mostrar produções pendentes"
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr "Mostrar produções pendentes na tela inicial"
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr "Mostrar produções atrasadas"
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr "Mostrar produções atrasadas na tela inicial"
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr "Mostrar pedidos de compra pendentes"
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr "Mostrar os Pedidos de Compras pendentes na página inicial"
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr "Mostrar Pedidos de Compra atrasados"
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr "Mostrar os Pedidos de Compras atrasadas na tela inicial"
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr "Mostrar pedidos de vendas pendentes"
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr "Mostrar os Pedidos de Vendas pendentes na página inicial"
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr "Mostrar Pedidos de Venda atrasados"
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr "Mostrar os Pedidos de Vendas atrasadas na tela inicial"
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr "Mostrar remessas de OV pendentes"
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr "Mostrar envios OV pendentes na tela inicial"
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr "Mostrar notícias"
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr "Mostrar notícias na tela inicial"
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr "Mostrar etiqueta em linha"
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "Mostrar etiquetas em PDF no navegador, ao invés de baixar o arquivo"
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr "Impressora de etiquetas padrão"
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr "Configurar qual impressora de etiqueta deve ser selecionada por padrão"
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr "Mostrar relatório em linha"
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "Mostrar relatórios em PDF no navegador, ao invés de baixar o arquivo"
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr "Procurar Peças"
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr "Mostrar peças na janela de visualização de pesquisa"
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr "Buscar Peças do Fornecedor"
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr "Mostrar fornecedor de peças na janela de visualização de pesquisa"
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr "Buscar peças do fabricante"
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr "Mostrar fabricante de peças na janela de visualização de pesquisa"
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr "Ocultar peças inativas"
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr "Não incluir peças inativas na janela de visualização de pesquisa"
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr "Pesquisar Categorias"
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr "Mostrar categoria das peças na janela de visualização de pesquisa"
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr "Pesquisar Estoque"
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr "Mostrar itens do estoque na janela de visualização de pesquisa"
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr "Ocultar itens do estoque indisponíveis"
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr "Não incluir itens de estoque que não estão disponíveis na janela de visualização de pesquisa"
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr "Procurar Locais"
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr "Mostrar locais de estoque na janela de visualização de pesquisa"
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr "Pesquisar empresas"
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr "Mostrar empresas na janela de visualização de pesquisa"
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr "Procurar Pedidos de Produção"
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr "Mostrar pedidos de produção na janela de visualização de pesquisa"
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr "Mostrar Pedido de Compras"
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr "Mostrar pedidos de compra na janela de visualização de pesquisa"
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr "Não incluir Pedidos de Compras Inativos"
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr "Não incluir pedidos de compras inativos na janela de visualização de pesquisa"
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr "Procurar Pedidos de Vendas"
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr "Mostrar pedidos de vendas na janela de visualização de pesquisa"
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr "Não Incluir Pedidos de Compras Inativas"
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr "Não incluir pedidos de vendas inativos na janela de visualização de pesquisa"
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr "Procurar Pedidos de Devolução"
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr "Mostrar pedidos de devolução na janela de visualização de pesquisa"
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr "Não Incluir Pedidos de Devolução Inativas"
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr "Não incluir pedidos de devolução inativos na janela de visualização de pesquisa"
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr "Mostrar Resultados Anteriores"
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr "Número de resultados mostrados em cada seção da janela de visualização de pesquisa"
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr "Pesquisa de Regex"
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr "Permitir expressôes comuns nas conultas de pesquisas"
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr "Busca de Palavras Inteira"
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr "Pesquisa retorna que palavra inteira coincide"
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr "Mostrar Quantidade nos Formulários"
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr "Mostrar a quantidade de peças disponíveis em alguns formulários"
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr "Tecla Esc Fecha Formulários"
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr "Usar a tecla Esc para fechar fomulários modais"
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr "Fixar Navbar"
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr "A posição do Navbar é fixa no topo da tela"
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr "Formato da data"
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr "Formato preferido para mostrar datas"
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Agendamento de peças"
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr "Mostrar informações de agendamento de peças"
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Balanço de Peça"
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr "Mostrar informação de balanço da peça (se a funcionalidade de balanço estiver habilitada)"
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr "Comprimento da Tabela de Frases"
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr "Limite máximo de comprimento para frases exibidas nas visualizações de tabela"
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr "Receber relatório de erros"
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr "Receber notificações para erros do sistema"
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr "Últimas máquinas de impressão utilizadas"
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr "Salvar as últimas máquinas de impressão usadas para um usuário"
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Usuario"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr "Quantidade de Parcelamentos"
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr "Quantidade de Parcelamentos"
msgid "Price"
msgstr "Preço"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr "Preço unitário na quantidade especificada"
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr "Ponto final"
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr "Ponto final em qual o gancho web foi recebido"
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr "Nome para este webhook"
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr "Este gancho web está ativo"
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr "Token de acesso"
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr "Segredo"
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr "Segredo compartilhado para HMAC"
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr "ID da Mensagem"
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr "Identificador exclusivo desta mensagem"
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr "Servidor"
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr "Servidor do qual esta mensagem foi recebida"
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr "Cabeçalho"
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr "Cabeçalho da mensagem"
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr "Corpo"
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr "Corpo da mensagem"
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr "Ponto do qual esta mensagem foi recebida"
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr "Trabalhado em"
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr "O trabalho desta mensagem foi concluído?"
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Título"
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr "Título"
msgid "Link"
msgstr "Ligação"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr "Publicado"
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Resumo"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr "Lida"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr "Esta notícia do item foi lida?"
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "Imagem"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr "Arquivo de imagem"
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr "Nome da unidade deve ser um identificador válido"
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr "Nome da unidade"
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "Símbolo"
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr "Símbolo de unidade opcional"
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr "Definição"
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr "Definição de unidade"
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Anexo"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Arquivo ausente"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Link externo não encontrado"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Selecione arquivo para anexar"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Comentario"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr "Chave"
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr "Os itens de um pedido de devolução foram recebidos"
msgid "Error raised by plugin"
msgstr "Erro criado pela extensão"
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr "Executando"
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr "Tarefas Pendentes"
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr "Tarefas Agendadas"
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr "Tarefas com Falhas"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr "ID da Tarefa"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr "ID Único da Tarefa"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr "Bloquear"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr "Tempo de bloqueio"
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr "Nome da tarefa"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr "Função"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr "Nome da função"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr "Argumentos"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr "Argumentos da tarefa"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr "Argumentos de Palavra-chave"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr "Argumentos Palavra-chave da Tarefa"
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Nome do arquivo"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr "Link para as informações do endereço (externo)"
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr "Peça do Fabricante"
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Peça base"
@@ -4463,8 +4460,8 @@ msgstr "Selecionar peça"
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr "Selecionar fabricante"
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr "Nome do parâmetro"
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr "Valor do Parâmetro"
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr "Unidades do parâmetro"
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr "Parte do fabricante vinculado deve fazer referência à mesma peça base
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr "Fornecedor"
msgid "Select supplier"
msgstr "Selecione o fornecedor"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr "Unidade de reserva de estoque fornecedor"
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr "Descrição da peça fornecedor"
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr "Descrição da peça fornecedor"
msgid "Note"
msgstr "Anotação"
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr "preço base"
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Taxa mínima (ex.: taxa de estoque)"
@@ -4629,7 +4626,7 @@ msgstr "Quantidade de embalagens"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "Quantidade total fornecida em um único pacote. Deixe em branco para itens únicos."
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr "múltiplo"
@@ -4661,7 +4658,7 @@ msgstr "Moeda padrão utilizada para este fornecedor"
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr "Excluir imagem"
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,7 @@ msgstr "Nenhuma informação do fabricante disponível"
#: 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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr "Nenhuma informação do fornecedor está disponível"
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr "Atualizar Disponibilidade de Peças"
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr "Dados"
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr "Número de itens recebidos"
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr "Preço de Compra"
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr "Usuário que verificou esta remessa"
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr "Remessa"
@@ -5982,7 +5979,7 @@ msgstr "Itens de linha"
msgid "Line item does not match purchase order"
msgstr "O item de linha não corresponde ao pedido de compra"
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr "Selecione o local de destino para os itens recebidos"
@@ -6019,7 +6016,7 @@ msgstr "Código de barras já em uso"
msgid "An integer quantity must be provided for trackable parts"
msgstr "Quantidade inteira deve ser fornecida para peças rastreáveis"
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr "Itens de linha deve ser providenciados"
@@ -6051,39 +6048,39 @@ msgstr "Quantidade deve ser positiva"
msgid "Enter serial numbers to allocate"
msgstr "Digite números de série para alocar"
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr "O pedido já foi enviado"
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr "O envio não está associado a este pedido"
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr "Nenhuma correspondência encontrada para os seguintes números de série"
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
-msgstr "Os seguintes números de série já estão alocados"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
+msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr "Devolver item do pedido"
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr "Item do pedido não bate com o pedido de devolução"
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr "Item do pedido já foi recebido"
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr "Itens só podem ser recebidos de pedidos em processamento"
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr "Tipo de moeda para o item do pedido"
@@ -6510,7 +6507,7 @@ msgstr "Atualizado {part} unid.-preço para {price}"
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "Atualizado {part} unid.-preço para {price} e quantidade para {qty}"
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr "Imagem da Peça"
msgid "Category ID"
msgstr "ID da Categoria"
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr "Nome da Categoria"
@@ -6562,18 +6559,18 @@ msgstr "Estoque Mínimo"
msgid "Used In"
msgstr "Usado em"
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr "Produzindo"
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr "Custo Mínimo"
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr "Custo Máximo"
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr "Caminho da Categoria"
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr "IPN Paternal"
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Preço Mínimo"
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr "Local Padrão"
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Estoque Total"
@@ -6755,7 +6752,7 @@ msgstr "Estoque Total"
msgid "Input quantity for price calculation"
msgstr "Quantidade para o cálculo de preço"
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoria da Peça"
@@ -6878,7 +6875,7 @@ msgstr "Uma parte com este Nome, IPN e Revisão já existe."
msgid "Parts cannot be assigned to structural part categories!"
msgstr "Peças não podem ser atribuídas a categorias estruturais!"
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr "Nome da peça"
@@ -6906,7 +6903,7 @@ msgstr "Palavras-chave para melhorar a visibilidade nos resultados da pesquisa"
msgid "Part category"
msgstr "Categoria da Peça"
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr "Revisão de peça ou número de versão"
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr "Proprietário responsável por esta peça"
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr "Último Balanço"
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr "Venda múltipla"
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr "Moeda usada para armazenar os cálculos de preços"
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr "Custo Mínimo da LDM"
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr "Custo mínimo das peças componentes"
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr "Custo Máximo da LDM"
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr "Custo máximo das peças componentes"
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr "Custo Mínimo de Compra"
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr "Custo mínimo histórico de compra"
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr "Custo Máximo de Compra"
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr "Custo máximo histórico de compra"
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr "Preço Interno Mínimo"
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr "Custo mínimo baseado nos intervalos de preço internos"
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr "Preço Interno Máximo"
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr "Custo máximo baseado nos intervalos de preço internos"
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr "Preço Mínimo do Fornecedor"
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr "Preço mínimo da peça de fornecedores externos"
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr "Preço Máximo do Fornecedor"
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr "Preço máximo da peça de fornecedores externos"
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr "Custo Mínimo variável"
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr "Custo mínimo calculado das peças variáveis"
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr "Custo Máximo Variável"
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr "Custo máximo calculado das peças variáveis"
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr "Sobrepor o custo mínimo"
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr "Sobrepor o custo máximo"
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr "Custo total mínimo calculado"
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr "Custo total máximo calculado"
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr "Preço Mínimo de Venda"
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr "Preço mínimo de venda baseado nos intervalos de preço"
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr "Preço Máximo de Venda"
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr "Preço máximo de venda baseado nos intervalos de preço"
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr "Custo Mínimo de Venda"
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr "Preço histórico mínimo de venda"
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr "Custo Máximo de Venda"
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr "Preço histórico máximo de venda"
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr "Peça para Balanço"
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr "Total de Itens"
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr "Número de entradas de estoques individuais no momento do balanço"
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr "Estoque total disponível no momento do balanço"
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr "Estoque total disponível no momento do balanço"
msgid "Date"
msgstr "Data"
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr "Data de realização do balanço"
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr "Notas adicionais"
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr "Usuário que fez o balanço"
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr "Custo Mínimo de Estoque"
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr "Custo mínimo estimado de estoque disponível"
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr "Custo Máximo de Estoque"
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr "Custo máximo estimado de estoque disponível"
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr "Reportar"
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr "Arquivo de Relatório de Balanço (gerado internamente)"
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr "Contagem de Peças"
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr "Número de peças cobertas pelo Balanço"
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr "Usuário que solicitou este relatório de balanço"
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr "Escolhas devem ser únicas"
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr "Nome de Teste"
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr "Insira um nome para o teste"
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr "Descrição do Teste"
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr "Digite a descrição para este teste"
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr "Habilitado"
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr "Requerido"
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr "Este teste é obrigatório passar?"
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr "Requer Valor"
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr "Este teste requer um valor ao adicionar um resultado de teste?"
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr "Anexo obrigatório"
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Este teste requer um anexo ao adicionar um resultado de teste?"
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr "Escolhas"
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr "Parâmetros da caixa de seleção não podem ter unidades"
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr "Os parâmetros da caixa de seleção não podem ter escolhas"
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr "Nome do modelo de parâmetro deve ser único"
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr "Nome do Parâmetro"
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr "Unidades físicas para este parâmetro"
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr "Descrição do Parâmetro"
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr "Caixa de seleção"
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr "Este parâmetro é uma caixa de seleção?"
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr "Opções válidas para este parâmetro (separadas por vírgulas)"
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr "Escolha inválida para valor do parâmetro"
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr "Peça Paternal"
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Modelo de parâmetro"
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr "Valor do Parâmetro"
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Valor Padrão"
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr "Valor Padrão do Parâmetro"
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr "ID da peça ou nome da peça"
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr "Valor exclusivo do ID de peça"
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr "Valor da parte IPN"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr "Nível"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr "Nível da LDM"
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr "Selecione a Peça Parental"
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr "Sub peça"
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr "Selecionar peça a ser usada na LDM"
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr "Quantidade de LDM para este item LDM"
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr "Este item LDM é opcional"
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Este item LDM é consumível (não é rastreado nos pedidos de construção)"
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Excedente"
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Quantidade estimada de desperdício (absoluto ou porcentagem)"
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr "Referência do Item LDM"
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr "Notas do Item LDM"
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr "Soma de verificação"
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr "Soma de Verificação da LDM da linha"
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr "Validado"
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr "O item da LDM foi validado"
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr "Obtém herdados"
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Este item da LDM é herdado por LDMs para peças variáveis"
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Itens de estoque para as peças das variantes podem ser usados para este item LDM"
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr "Quantidade deve ser valor inteiro para peças rastreáveis"
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr "Sub peça deve ser especificada"
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr "Substituir Item da LDM"
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr "A peça de substituição não pode ser a mesma que a peça mestre"
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr "Item LDM Parental"
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr "Substituir peça"
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr "Parte 1"
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr "Parte 2"
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr "Selecionar Peça Relacionada"
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr "Relacionamento da peça não pode ser criada com ela mesma"
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr "Relação duplicada já existe"
@@ -7571,326 +7568,326 @@ msgstr "Moeda de compra deste item de estoque"
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr "Nenhuma parte selecionada"
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr "Selecionar categoria"
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr "Peça Original"
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr "Selecione a peça original para duplicar"
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr "Copiar imagem"
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr "Copiar imagem da peça original"
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr "Copiar LDM"
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr "Copiar lista de materiais da peça original"
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr "Copiar Parâmetros"
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr "Copiar dados do parâmetro da peça original"
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr "Copiar Notas"
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr "Copiar imagem da peça original"
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr "Quantidade Inicial de Estoque"
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Especificar a quantidade inicial de estoque para a peça. Se for zero, nenhum estoque é adicionado."
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr "Local Inicial do Estoque"
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr "Especifique o local do estoque inicial para esta Peça"
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr "Selecione o fornecedor (ou deixe em branco para pular)"
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Selecione fabricante (ou deixe em branco para pular)"
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr "Número de Peça do Fabricante"
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr "A empresa selecionada não é um fornecedor válido"
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr "A empresa selecionada não é um fabricante válido"
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr "A peça do fabricante que corresponde a essa MPN já existe"
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr "A peça do fornecedor que corresponde a essa SKU já existe"
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr "Peça duplicada"
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr "Copiar dados iniciais de outra peça"
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr "Estoque inicial"
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr "Criar peça com a quantidade inicial de estoque"
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr "Informações do Fornecedor"
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr "Adicionar informação inicial de fornecedor para esta peça"
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr "Copiar Parâmetros da Categoria"
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr "Copiar modelos de parâmetros a partir de categoria de peça selecionada"
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr "Imagem Existente"
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr "Nome de arquivo de uma imagem de peça existente"
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr "A imagem não existe"
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr "Limitar o relatório de balanço a uma determinada peça e quaisquer peças variantes"
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr "Limitar o relatório de balanço a uma determinada categoria, e qualquer peças filhas"
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr "Limitar o relatório de balanço a um determinado local de estoque, e qualquer local filho"
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr "Excluir Estoque externo"
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr "Excluir itens de estoque em locais externos"
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr "Gerar relatório"
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr "Gerar arquivo de relatório contendo dados de estoque calculados"
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr "Atualizar Peças"
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr "Atualizar peças especificadas com dados de estoque calculados"
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr "Função de Balanço de Estoque não está ativada"
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr "Sobrepor valor calculado para preço mínimo"
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr "Moeda do preço mínimo"
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr "Sobrepor valor calculado para preço máximo"
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr "Moeda do preço máximo"
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr "Atualizar"
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr "Atualizar preços desta peça"
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Não foi possível converter das moedas fornecidas para {default_currency}"
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr "Preço mínimo não pode ser maior que o preço máximo"
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr "Preço máximo não pode ser menor que o preço mínimo"
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr "Pode Produzir"
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr "Selecionar peça para copiar a LDM"
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr "Remover Dado Existente"
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr "Remova itens LDM existentes antes de copiar"
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr "Incluir Herdados"
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr "Incluir itens LDM que são herdados de peças modelo"
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr "Pular Linhas inválidas"
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr "Habilitar esta opção para pular linhas inválidas"
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr "Copiar Peças Substitutas"
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Copiar peças de substitutas quando duplicar itens de LDM"
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr "Limpar LDM Existente"
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr "Apagar itens LDM existentes antes de carregar"
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr "Nenhuma coluna de peça especificada"
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr "Múltiplas peças correspondentes encontradas"
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr "Nenhuma peça correspondente encontrada"
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr "Peça não está designada como componente"
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr "Quantidade não foi fornecida"
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr "Quantidade Inválida"
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr "Pelo menos um item LDM é necessário"
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr "Inscrever-se para notificações desta peça"
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr "Imprimir Etiqueta"
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr "Mostrar informações de preços"
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr "Ações de Estoque"
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr "Alocado para Pedidos de Construção"
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr "Alocado para Pedidos de Venda"
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr "Último Número de Série"
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr "Procurar por número serial"
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr "Editar"
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr "Imagem da peça não encontrada"
msgid "Part Pricing"
msgstr "Preço Peça"
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr "Borda"
msgid "Print a border around each label"
msgstr "Imprima uma borda em torno de cada etiqueta"
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr "Paisagem"
@@ -9012,44 +9009,44 @@ msgstr "Fornece suporte para escanear códigos de barras TME"
msgid "The Supplier which acts as 'TME'"
msgstr "O fornecedor que atua como 'TME'"
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr "Plugin instalado com sucesso"
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Plugin instalado na {path}"
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr "Plugin embutido"
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr "Plugin de Câmbio de exemplo"
msgid "InvenTree Contributors"
msgstr "Contribuidores do InvenTree"
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr "URL de origem"
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr "Nenhum objeto válido fornecido para o modelo"
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr "Erro ao imprimir etiqueta"
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr "Arquivo modelo '{template}' perdido ou não existe"
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr "Padrão de Nome de Arquivo"
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr "Filtros"
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr "Tamanho da página para relatórios PDF"
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr "Renderizar relatório em orientação paisagem"
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr "Largura [mm]"
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr "Largura da etiqueta, em mm"
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr "Altura [mm]"
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr "Altura da Etiqueta, em mm"
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr "Progresso"
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr "Recorte"
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr "Relatar arquivo de recorte"
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr "Descrição do arquivo de recorte"
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr "Patrimônio"
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr "Reportar arquivo de ativos"
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr "Descrição do arquivo de ativos"
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr "Selecione o modelo de etiqueta"
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr "Resultados do teste"
msgid "Test"
msgstr "Teste"
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr "Resultado"
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr "ID Cliente"
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr "Instalado em"
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr "Excluir quando esgotado"
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr "Data de validade"
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr "Data de validade depois"
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr "Inativo"
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr "Locais de estoque"
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr "Responsavel"
@@ -9826,7 +9891,7 @@ msgstr "Produção de Origem"
msgid "Build for this stock item"
msgstr "Produção para este item de estoque"
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr "Consumido por"
@@ -9891,7 +9956,7 @@ msgstr "A quantidade não corresponde aos números de série"
msgid "Serial numbers already exist"
msgstr "Números de série já existem"
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr "Códigos de estado do estoque devem corresponder"
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Item do estoque não pode ser realocado se não houver estoque da mesma"
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr "Observações de entrada"
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr "Deve-se fornecer o valor desse teste"
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr "O anexo deve ser enviado para este teste"
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr "Resultado do teste"
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr "Valor da saída do teste"
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr "Anexo do resultado do teste"
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr "Notas do teste"
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr "Número de série é muito grande"
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr "Item Primário"
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "Usar tamanho do pacote ao adicionar: a quantidade definida é o número de pacotes"
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr "Expirado"
@@ -10410,7 +10475,7 @@ msgstr "Este item de estoque não possuí nenhum filho"
msgid "Test Data"
msgstr "Dados de teste"
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr "Relatório do teste"
@@ -10450,200 +10515,204 @@ msgstr "Localizar item de estoque"
msgid "Scan to Location"
msgstr "Escanear a Localização"
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr "Ações de Impressão"
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr "Ações de ajuste de estoque"
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr "Contagem de estoque"
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr "Adicionar estoque"
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr "Remover estoque"
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr "Serializar estoque"
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr "Transferir estoque"
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr "Disponibilizar para o cliente"
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr "Devolver ao estoque"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr "Desinstalar o item do estoque"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr "Desinstalar"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr "Instalar item do estoque"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr "Instalar"
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr "Converter em variante"
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr "Duplicar item"
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr "Editar item de estoque"
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr "Excluir item de estoque"
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Produção"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr "Nenhum fabricante definido"
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr "Você não está autorizado a editar esse item."
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr "Somente leitura"
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr "Este item não está disponível no estoque"
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr "Este item de estoque está em produção e não pode ser editado."
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr "Edite este item usando o formulário de construçao."
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr "Este item de estoque está alocado a um pedido de venda"
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr "Este item de estoque está alocado a um pedido de produção"
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr "Este item de estoque é serializado. Tem um único número de série e a quantidade não pode ser ajustada"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr "página anterior"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr "Navegar para o número de série anterior"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr "próxima página"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr "Navegar para o próximo número de série"
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr "Nenhum local definido"
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr "Testes"
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr "Este item de estoque não passou todos os testes necessários"
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr "Este Item do Estoque expirou em %(item.expiry_date)s"
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Este Item do Estoque expira em %(item.expiry_date)s"
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr "Nenhum balanço feito"
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr "item de estoque"
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr "Editar Situação do Estoque"
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr "QR Code do Item de Estoque"
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr "Vincular Código de barras ao item de estoque"
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr "Selecione uma das peças variantes listada abaixo."
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr "Atenção"
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr "Esta ação não pode ser facilmente desfeita"
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr "Converter Item de Estoque"
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr "Retornar ao Estoque"
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr "Apagar Tipo de Localização"
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr "Novo Tipo de localização"
@@ -11367,7 +11436,7 @@ msgstr "Configurações do Pedido de Venda"
msgid "Stock Settings"
msgstr "Configurações de Estoque"
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr "Tipos de Locais de estoque"
@@ -11852,23 +11921,23 @@ msgstr "Adicionar anexo"
msgid "Barcode Identifier"
msgstr "Identificador de Código de Barras"
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr "Reinicialização do Servidor é Necessária"
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr "Uma opção de configuração foi alterada, o que requer uma reinicialização do servidor"
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr "Contate seu administrador de sistema para mais informações"
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr "Migrações de Banco de Dados Pendentes"
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr "Existem migrações pendentes do banco de dados que requerem atenção"
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po
index 66c518fbd130..864928ec81d8 100644
--- a/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
@@ -19,7 +19,7 @@ msgstr ""
#: InvenTree/api.py:269
msgid "API endpoint not found"
-msgstr ""
+msgstr "API endpoint não encontrado"
#: InvenTree/api.py:499
msgid "User does not have permission to view this model"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -102,19 +102,19 @@ msgstr ""
#: InvenTree/forms.py:139
msgid "Confirm password"
-msgstr ""
+msgstr "Confirme a senha"
#: InvenTree/forms.py:140
msgid "Confirm new password"
-msgstr ""
+msgstr "Confirme a nova senha"
#: InvenTree/forms.py:144
msgid "Old password"
-msgstr ""
+msgstr "Senha antiga"
#: InvenTree/forms.py:183
msgid "Email (again)"
-msgstr ""
+msgstr "Email (novamente)"
#: InvenTree/forms.py:187
msgid "Email address confirmation"
@@ -229,23 +229,23 @@ msgstr ""
#: InvenTree/locales.py:22
msgid "German"
-msgstr ""
+msgstr "Alemão"
#: InvenTree/locales.py:23
msgid "Greek"
-msgstr ""
+msgstr "Grego"
#: InvenTree/locales.py:24
msgid "English"
-msgstr ""
+msgstr "Inglês"
#: InvenTree/locales.py:25
msgid "Spanish"
-msgstr ""
+msgstr "Espanhol"
#: InvenTree/locales.py:26
msgid "Spanish (Mexican)"
-msgstr ""
+msgstr "Espanhol (mexicano)"
#: InvenTree/locales.py:27
msgid "Estonian"
@@ -253,7 +253,7 @@ msgstr ""
#: InvenTree/locales.py:28
msgid "Farsi / Persian"
-msgstr ""
+msgstr "Farsi / Persa"
#: InvenTree/locales.py:29
msgid "Finnish"
@@ -261,7 +261,7 @@ msgstr ""
#: InvenTree/locales.py:30
msgid "French"
-msgstr ""
+msgstr "Francês"
#: InvenTree/locales.py:31
msgid "Hebrew"
@@ -285,7 +285,7 @@ msgstr ""
#: InvenTree/locales.py:36
msgid "Korean"
-msgstr ""
+msgstr "Coreano"
#: InvenTree/locales.py:37
msgid "Latvian"
@@ -301,11 +301,11 @@ msgstr ""
#: InvenTree/locales.py:40
msgid "Polish"
-msgstr ""
+msgstr "Polonês"
#: InvenTree/locales.py:41
msgid "Portuguese"
-msgstr ""
+msgstr "Português"
#: InvenTree/locales.py:42
msgid "Portuguese (Brazilian)"
@@ -313,11 +313,11 @@ msgstr ""
#: InvenTree/locales.py:43
msgid "Romanian"
-msgstr ""
+msgstr "Romeno"
#: InvenTree/locales.py:44
msgid "Russian"
-msgstr ""
+msgstr "Russo"
#: InvenTree/locales.py:45
msgid "Slovak"
@@ -325,7 +325,7 @@ msgstr ""
#: InvenTree/locales.py:46
msgid "Slovenian"
-msgstr ""
+msgstr "Esloveno"
#: InvenTree/locales.py:47
msgid "Serbian"
@@ -341,30 +341,30 @@ msgstr ""
#: InvenTree/locales.py:50
msgid "Turkish"
-msgstr ""
+msgstr "Turco"
#: InvenTree/locales.py:51
msgid "Ukrainian"
-msgstr ""
+msgstr "Ucraniano"
#: InvenTree/locales.py:52
msgid "Vietnamese"
-msgstr ""
+msgstr "Vietnamita"
#: InvenTree/locales.py:53
msgid "Chinese (Simplified)"
-msgstr ""
+msgstr "Chinês (simplificado)"
#: InvenTree/locales.py:54
msgid "Chinese (Traditional)"
-msgstr ""
+msgstr "Chinês (tradicional)"
#: InvenTree/magic_login.py:28
#, python-brace-format
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -401,7 +401,7 @@ msgstr ""
#: InvenTree/models.py:430
msgid "Reference field cannot be empty"
-msgstr ""
+msgstr "O campo de referência não deve ficar vazio"
#: InvenTree/models.py:438
msgid "Reference must match required pattern"
@@ -409,7 +409,7 @@ msgstr ""
#: InvenTree/models.py:469
msgid "Reference number is too large"
-msgstr ""
+msgstr "O número de referência é muito longo"
#: InvenTree/models.py:720
msgid "Duplicate names cannot exist under the same parent"
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -511,18 +511,18 @@ msgstr ""
#: InvenTree/models.py:1075
msgid "Server Error"
-msgstr ""
+msgstr "Erro de servidor"
#: InvenTree/models.py:1076
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr ""
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
-msgstr ""
+msgstr "Arquivo de dados"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -946,7 +946,7 @@ msgstr ""
#: build/models.py:281
msgid "Sales Order Reference"
-msgstr ""
+msgstr "Referência do pedido de venda"
#: build/models.py:285
msgid "SalesOrder to which this build is allocated"
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr ""
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
-msgstr ""
+msgstr "Quantidade necessária para o pedido de produção"
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1352,7 +1352,7 @@ msgstr ""
#: build/serializers.py:375
msgid "Automatically allocate required items with matching serial numbers"
-msgstr ""
+msgstr "Alocar automaticamente os itens necessários com os números de série correspondentes"
#: build/serializers.py:390
msgid "Serial numbers must be provided for trackable parts"
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1455,7 +1455,7 @@ msgstr ""
#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
-msgstr ""
+msgstr "Aceitar que os itens de estoque não foram totalmente alocados para esta encomenda"
#: build/serializers.py:793 templates/js/translated/build.js:319
msgid "Required stock has not been fully allocated"
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1739,13 +1739,13 @@ msgstr ""
#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51
#: order/status_codes.py:82
msgid "Cancelled"
-msgstr ""
+msgstr "Cancelado"
#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:510
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr ""
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2459,7 +2456,7 @@ msgstr ""
#: common/models.py:1389
msgid "User notifications will be deleted after specified number of days"
-msgstr ""
+msgstr "Notificações de usuários será excluído após um número especificado de dias"
#: common/models.py:1396 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
@@ -2581,13 +2578,13 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
-msgstr ""
+msgstr "Modelo"
#: common/models.py:1486
msgid "Parts are templates by default"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr ""
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr ""
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr ""
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr ""
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr ""
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr ""
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr ""
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po
index a7efed80aa00..c38b3c64c588 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Romanian\n"
"Language: ro_RO\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr ""
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr ""
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr ""
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr ""
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr ""
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr ""
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr ""
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr ""
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr ""
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr ""
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr ""
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr ""
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po
index fdaa89efbf98..1d2bdc0163e2 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Китайский (Традиционный)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] Войти в приложение"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Повторяющиеся имена не могут существов
msgid "Invalid choice"
msgstr "Неверный выбор"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Название"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Ошибка сервера"
msgid "An error has been logged by the server."
msgstr "Сервер зарегистрировал ошибку."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Должно быть действительным номером"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Выберите валюту из доступных вариантов
msgid "Username"
msgstr "Имя пользователя"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "Имя"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr "Имя пользователя"
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "Фамилия"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr "Фамилия пользователя"
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr "Электронный адрес пользователя"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr "Персонал"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr "Имеет ли этот пользователь права персонала"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr "Суперпользователь"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr "Это пользователь является суперпользователем"
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr "Это пользователь является суперпользо
msgid "Active"
msgstr "Активный"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr "Активна эта учетная запись"
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "У вас недостаточно прав для изменения роли этого пользователя."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Только суперпользователи могут создавать новых пользователей"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "Ваша учётная запись была успешно создана."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "Пожалуйста, используйте функцию сброса пароля для входа"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "Добро пожаловать в InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Неверное значение"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Файл данных"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Выберите файл данных для загрузки"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Неподдерживаемый тип файла"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Файл слишком большой"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Столбцы в файле не найдены"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Строки данных в файле не найдены"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Строки данных в файле не найдены"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Столбцы данных не предоставлены"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Отсутствует обязательный столбец: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Повторяющийся столбец: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Удаленное изображение"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "ССЫЛКА файла изображения на удаленном сервере"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "Загрузка изображений с удаленного URL-адреса не включена"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Проверка фонового работника не удалась"
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr "Заказ на производство должен быть отменен перед удалением"
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "Заказ на производство должен быть отме
msgid "Consumable"
msgstr "Расходники"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "Необязательно"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr "Зарезервировано"
msgid "Available"
msgstr "Доступно"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Доступно"
msgid "Build Order"
msgstr "Заказ на производство"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr "Ссылка на заказ на производство"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "Заказ на производство, которому принад
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr "Пользователь, ответственный за этот за
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Внешняя ссылка"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Ссылка на внешний URL"
@@ -1110,7 +1110,7 @@ msgstr "Заказ на производство {build} был завершен
msgid "A build order has been completed"
msgstr "Заказ на производство был завершен"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "Продукция не указана"
@@ -1122,37 +1122,37 @@ msgstr "Продукция уже произведена"
msgid "Build output does not match Build Order"
msgstr "Продукция не совпадает с заказом на производство"
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "Количество должно быть больше нуля"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr "Количество не может быть больше количества продукции"
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "Сборка {serial} не прошла все необходимые тесты"
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr "Номер позиции для производства"
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr "Объект производства"
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr "Объект производства"
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr "Объект производства"
msgid "Quantity"
msgstr "Количество"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr "Требуемое количество для заказа на производство"
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Элемент производства должен указать продукцию, как главную деталь помеченную как отслеживаемая"
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Резервируемое количество ({q}) не должно превышать доступное количество на складе ({a})"
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "Складская позиция перераспределена"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "Резервируемое количество должно быть больше нуля"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "Количество должно быть 1 для сериализованных запасов"
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr "Выбранная складская позиция не соответствует позиции в BOM"
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr "Выбранная складская позиция не соответ
msgid "Stock Item"
msgstr "Складская позиция"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Исходная складская позиция"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Количество на складе для производства"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Установить в"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Целевая складская позиция"
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr "Наименование детали"
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "Введите серийные номера для продукции"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr "Место хранения для завершенной продукц
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr "Продукция должна быть указан для резер
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Продукция не может быть указана для резервирования не отслеживаемых частей"
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr "Необходимо указать резервируемые элементы"
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr "Упаковка"
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr "Код детали"
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr "IPN детали"
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr "Серийный номер"
msgid "Allocated Quantity"
msgstr "Зарезервированное количество"
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr "Доступный запас"
@@ -1667,13 +1667,13 @@ msgstr "Отслеживание"
msgid "Inherited"
msgstr "Унаследованные"
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr "Позиция BOM"
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr "Зарезервированные Запасы"
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr "Зарезервированные Запасы"
msgid "On Order"
msgstr "В заказе"
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr "В производстве"
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr "Внешний склад"
@@ -1745,7 +1745,7 @@ msgstr "Отменено"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Готово"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr "Удалить производство"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr "Завершенная продукция"
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr "Зарезервированные детали"
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr "Незавершенная продукция"
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr "Ссылка"
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr "Файл"
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr "У пользователя нет прав на удаление этого вложения"
@@ -2352,8 +2349,8 @@ msgstr "Как часто обновлять курс валют (установ
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "дней"
@@ -2581,9 +2578,9 @@ msgstr "Скопировать параметры по шаблону катег
msgid "Copy category parameter templates when creating a part"
msgstr "Копировать параметры по шаблону категории при создании детали"
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr "По умолчанию детали могут быть собраны из других компонентов"
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr "Компонент"
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Журнал ошибок, которые возникают при создании отчетов"
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "Размер страницы"
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr "Размер страницы по умолчанию для PDF отчетов"
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr "Включить отчеты"
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr "Включить генерацию отчетов"
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr "Прикрепить отчеты о тестах"
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr "При печати отчета о тестировании приложить копию тестового отчета к соответствующему складской позиции"
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr "Глобально уникальные серийные номера"
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr "Серийные номера для складских позиций должны быть уникальными глобально"
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr "Автоматическое заполнение серийных номеров"
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr "Автоматическое заполнение серийных номеров в формах"
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr "Удалить исчерпанный запас"
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr "Определяет поведение по умолчанию, когда складская позиция заканчивается"
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr "Код партии Шаблона"
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr "Шаблон для создания кодов партии по умолчанию для складских позиций"
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr "Срок годности Запасов"
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr "Включить функцию истечения срока годности"
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr "Использовать просроченные остатки в производстве"
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr "Разрешить продажу просроченных запасов"
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr "Время Залежалости Запасов"
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr "Количество дней перед тем как складская единица будет считаться просроченной"
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr "Использовать просроченные остатки в производстве"
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr "Разрешить использовать просроченные остатки в производстве"
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr "Контроль за собственными запасами"
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr "Разрешить владельцу контролировать расположение складов и номенклатуры"
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr "Значок местоположения по умолчанию"
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr "Значок местоположения склада по умолчанию (пустой означает отсутствие значка)"
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr "Показать установленные складские позиции"
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr "Отображать установленные складские позиции в складских таблицах"
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr "Проверять спецификацию при установке изделий"
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr "Установленные единица хранения должны присутствовать в спецификации для родительской детали"
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr "Разрешить передачу товара, отсутствующего на складе"
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr "Разрешить перемещение товаров, которых нет на складе, между складами"
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr "Паттерн ссылки заказа на производство"
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr "Поле требуемого паттерна для создания ссылки заказа на производство"
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr "Требуется ответственный владелец"
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr "Ответственный владелец должен быть назначен для каждого заказа"
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Запретить вывод сборки до тех пор, пока не пройдут все необходимые тесты"
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr "Включить заказы на возврат"
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr "Включите функцию заказа на возврат в пользовательском интерфейсе"
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr "Шаблон заказа на возврат товара"
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr "Необходимый шаблон для создания поля «Возврат заказа»"
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr "Редактировать завершенные возвратные заказы"
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr "Разрешить редактирование возвращенных заказов после их завершения"
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr "Шаблон заказа на возврат товара"
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr "Необходимый шаблон для создания поля «Возврат заказа»"
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr "Редактировать завершенные заказы на покупку"
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr "Разрешить регистрацию"
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr "Включить SSO"
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "Необходимо указать EMail"
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr "Написать дважды"
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr "Пароль дважды"
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr "Разрешенные домены"
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr "Принудительное MFA"
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr "Пользователи должны использовать многофакторную безопасность."
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr "Проверять плагины при запуске"
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "Исключить складские позиции во внешних местах хранения из инвентаризации"
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr "Автоматический период инвентаризации"
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr "Количество дней между автоматической записью запасов (установите нулевое значение для отключения)"
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr "Интервал удаления журнала ошибок"
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr "Журналы ошибок будут удалены после указанного количества дней"
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr "Показывать полные имена пользователей"
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr "Отображать полные имена пользователей вместо логинов"
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr "Включить данные тестовой станции"
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr "Включить сбор данных с тестовой станции для получения результатов тестирования"
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr "Ключ настроек (должен быть уникальным - не чувствителен к регистру)"
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr "Скрыть неактивные детали"
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr "Скрывать неактивные части в результатах, отображаемых на главной странице,"
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr "Показывать детали, на которые включены уведомления"
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr "Показывать детали, на которые включены уведомления, на главной странице"
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr "Показывать категории, на которые включены уведомления"
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr "Показывать категории, на которые включены уведомления, на главной странице"
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr "Показывать последние детали"
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr "Показывать последние детали на главной странице"
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr "Показывать недопустимые спецификации"
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr "Показывать BOMы, ожидающие проверки, на главной странице"
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr "Показывать изменившиеся складские запасы"
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr "Показывать складские позиции с недавно изменившимися запасами на главной странице"
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr "Показывать низкие складские запасы"
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr "Показывать складские позиции с низкими запасами на главной странице"
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr "Показывать закончившиеся складские позиции"
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr "Показывать закончившиеся складские позиции на главной странице"
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr "Показывать требуемые складские позиции"
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr "Показывать требуемые для производства складские позиции на главной странице"
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr "Показывать складские позиции с истекшим сроком годности"
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr "Показывать складские позиции с истёкшим сроком годности на главной странице"
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr "Показывать залежалые складские позиции"
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr "Показывать складские позиции с истекающим сроком годности на главной странице"
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr "Показывать незавершённые производства"
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr "Показывать незавершённые производства на главной странице"
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr "Показывать просроченные производства"
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr "Показывать просроченные производства на главной странице"
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr "Показать невыполненные заказы"
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr "Покажите невыполненные заказы на покупку на главной странице"
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr "Показать просроченные заказы на производство"
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr "Показывать просроченные сборки на главной странице"
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr "Показать невыполненные заказы"
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr "Покажите невыполненные заказы на покупку на главной странице"
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr "Показать просроченные заказы на продажу"
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr "Показывать просроченные заказы на покупку на главной странице"
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr "Показывать новости"
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "Отображение PDF-этикетки в браузере вместо загрузки в виде файла"
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr "Принтер этикетки по умолчанию"
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr "Настроить принтер этикеток по умолчанию"
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr "Отображение встроенного отчета"
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "Отображение PDF-этикетки в браузере вместо загрузки в виде файла"
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr "Поиск Деталей"
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr "Отображение деталей в окне предварительного просмотра поиска"
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr "Поиск деталей поставщика"
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr "Отображение деталей поставщика в окне предварительного просмотра поиска"
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr "Новая деталь производителя"
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr "Отображение деталей поставщика в окне предварительного просмотра поиска"
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr "Скрыть неактивные детали"
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr "Исключить неактивные детали из окна предварительного просмотра поиска"
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr "Категории поиска"
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr "Отображение деталей в окне предварительного просмотра поиска"
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr "Поиск Запасов"
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr "Отображать складские позиции в окне предварительного просмотра поиска"
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr "Скрыть недоступные складские позиции"
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr "Исключить недоступные складские позиции из окна предварительного просмотра поиска"
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr "Поиск мест хранения"
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr "Отображать места хранения в окне предварительного просмотра поиска"
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr "Поиск компаний"
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr "Поиск заказов на производство"
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr "Отображать заказы на производство в окне предварительного просмотра поиска"
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr "Поиск заказов на покупку"
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr "Поиск заказов на продажу"
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr "Поиск заказов на возврат"
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr "Поиск по Regex"
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr "Фиксированная панель навигации"
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr "Формат даты"
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Планирование деталей"
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Инвентаризация детали"
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Пользователь"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr "Цена"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr "Конечная точка"
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr "Токен"
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr "Токен для доступа"
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr "Секрет"
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr "ID Сообщения"
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr "Хост"
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr "Заголовок"
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr "Тело"
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr "Работал над"
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr "Код"
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Заголовок"
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr "Заголовок"
msgid "Link"
msgstr "Ссылка"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr "Опубликовано"
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Итого"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr "Читать"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "Изображение"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr "Файл изображения"
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr "Название единицы"
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "Символ"
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr "Определение"
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Вложения"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Файл не найден"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Отсутствует внешняя ссылка"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Выберите файл для вложения"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Комментарий"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr "Ключ"
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr "Запущен"
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr "Ожидающие задачи"
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr "Запланированные задания"
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr "Невыполненные Задачи"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr "Код задачи"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr "Уникальный ID задачи"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr "Заблокировать"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr "Время блокировки"
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr "Название задачи"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr "Функция"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr "Имя функции"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr "Аргументы"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr "Аргументы задачи"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Имя файла"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr "Ссылка на адресную информацию (внешняя)
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr "Деталь производителя"
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Базовая деталь"
@@ -4463,8 +4460,8 @@ msgstr "Выберите деталь"
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr "Выберите производителя"
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr "Наименование параметра"
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr "Значение параметра"
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr "Единицы измерения параметра"
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr "Связанная деталь производителя должна
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr "Поставщик"
msgid "Select supplier"
msgstr "Выберите поставщика"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr "Код поставщика"
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr "Описание детали поставщика"
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr "Описание детали поставщика"
msgid "Note"
msgstr "Запись"
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr "базовая стоимость"
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr "Кол-во в упаковке"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr "множественные"
@@ -4661,7 +4658,7 @@ msgstr "Валюта по умолчанию для этого поставщи
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr "Удалить изображение"
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr "Номер строки"
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr "Данные"
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr "Закупочная цена"
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr "Отправление"
@@ -5982,7 +5979,7 @@ msgstr "Позиция"
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr "Выберите место назначения для полученных элементов"
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr "Для отслеживаемых деталей должно быть указано целочисленное количество"
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr "Введите серийные номера для резервирования"
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr "Изображение Детали"
msgid "Category ID"
msgstr "Код категории"
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr "Название категории"
@@ -6562,18 +6559,18 @@ msgstr "Минимальный запас"
msgid "Used In"
msgstr "Используется в"
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr "Производится"
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr "Минимальная Стоимость"
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr "Максимальная Стоимость"
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr "Путь к категории"
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr "Родительский IPN"
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Минимальная цена"
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr "Место хранения по умолчанию"
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Общий запас"
@@ -6755,7 +6752,7 @@ msgstr "Общий запас"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Категория детали"
@@ -6878,7 +6875,7 @@ msgstr "Часть с таким именем, IPN и ревизией уже с
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr "Наименование детали"
@@ -6906,7 +6903,7 @@ msgstr "Ключевые слова для улучшения видимости
msgid "Part category"
msgstr "Категория"
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr "Ревизия или серийный номер детали"
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr "Последняя инвентаризация"
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr "Продать несколько"
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr "Минимальная Стоимость BOM"
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr "Максимальная Стоимость BOM"
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr "Количество Элементов"
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr "Дата"
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr "Дополнительные Записи"
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr "Отчет"
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr "Количество Деталей"
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr "Название теста"
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr "Введите имя для теста"
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr "Описание теста"
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr "Введите описание для этого теста"
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr "Включено"
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr "Требуется"
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr "Требуется значение"
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr "Варианты"
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr "Название параметра"
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr "Описание параметра"
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr "Чекбокс"
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr "Родительская деталь"
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Шаблон параметра"
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr "Значение Параметра"
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Значение по умолчанию"
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr "Код или наименование детали"
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr "Значение IPN"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr "Уровень"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr "Уровень BOM"
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr "Выберите родительскую деталь"
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr "Суб-деталь"
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr "Выбрать деталь для использования в BOM"
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Эта позиция - расходник. (она не отслеживается в заказах на производство)"
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Перерасход"
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Расчетное количество перерасходов производства (абсолютное или процентное)"
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr "Записи о позиции BOM"
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr "Контрольная сумма"
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr "Проверен"
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Складские позиции для разновидностей деталей могут быть использованы для этой позиции BOM"
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr "Для отслеживаемых деталей количество должно быть целым числом"
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr "Позиция BOM-родителя"
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr "Замена детали"
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr "Часть 1"
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr "Часть 2"
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr "Выберите связанную часть"
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr "Валюта закупки складской позиции"
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr "Не выбрана ни одна деталь"
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr "Выберите категорию"
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr "Оригинальная деталь"
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr "Копировать Изображение"
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr "Скопировать BOM"
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr "Скопировать параметры"
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr "Копировать Записи"
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr "Скопировать записи из оригинальной детали"
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)"
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)"
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr "Код производителя"
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr "Дублировать деталь"
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr "Начальный запас"
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr "Копировать параметры категории"
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr "Копировать шаблоны параметров из выбранной категории деталей"
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr "Существующее изображение"
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr "Исключить складские позиции в внешних местах хранения"
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr "Создать отчет"
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr "Обновить детали"
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr "Обновить"
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr "Можно произвести"
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr "Пропустить некорректные строки"
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr "Подходящая деталь не найдена"
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr "Некорректное количество"
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr "Включить уведомления для данной детали"
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr "Печать этикетки"
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr "Действия со складом"
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr "Зарезервировано заказами на производство"
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr "Последний Серийный Номер"
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr "Редактировать"
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr "Изображение детали не найдено"
msgid "Part Pricing"
msgstr "Цена Детали"
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr "Граница"
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr "Альбомная"
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr "Встроенный плагин"
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr "Исходная ссылка"
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr "Описание шаблона"
msgid "Revision number (auto-increments)"
msgstr "Номер ревизии (автоматически)"
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr "Шаблон имени файла"
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr "Фильтры"
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr "Ширина [мм]"
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr "Высота [мм]"
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr "Прогресс"
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr "Выходной файл"
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr "Сгенерированный выходной файл"
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr "Сниппет"
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr "Описание файла сниппета"
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr "Объект"
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr "Описание медиафайла"
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr "Результаты тестирования"
msgid "Test"
msgstr "Тестирование"
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr "Результат"
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr "ID Клиента"
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr "Установлено в"
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr "Истекает"
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr "Залежалый"
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr "Места хранения"
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr "Владелец"
@@ -9826,7 +9891,7 @@ msgstr "Исходное производство"
msgid "Build for this stock item"
msgstr "Производства для этой складской позиции"
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr "Поглощен"
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr "Серийные номера уже существуют"
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr "Результат тестирования"
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr "Записи Тестирования"
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr "Родительский элемент"
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr "Просрочен"
@@ -10410,7 +10475,7 @@ msgstr "Эта складская позиция не имеет дочерни
msgid "Test Data"
msgstr "Данные тестов"
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr "Отчет тестирования"
@@ -10450,200 +10515,204 @@ msgstr "Найти складскую позицию"
msgid "Scan to Location"
msgstr "Сканировать в место хранения"
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr "Действия печати"
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr "Установить запасы"
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr "Добавить Остатки"
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr "Удалить запасы"
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr "Сериализовать запасы"
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr "Переместить запасы"
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr "Вернуть на склад"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr "Удалить складскую позицию"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr "Удалить"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr "Установить складскую позицию"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr "Установить"
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr "Преобразовать в разновидность"
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr "Дублировать складскую позицию"
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr "Редактировать складскую позицию"
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr "Удалить складскую позицию"
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Производство"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr "Вы не в списке владельцев этого элемента. Складская позиция не может быть отредактирована."
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr "Только для чтения"
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr "Эта складская позиция не доступна"
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr "Эта складская позиция находиться в производстве и не может быть отредактирована."
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr "Редактировать складскую позицию из производства."
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr "Эта складская позиция зарезервирована для заказа на продажу"
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr "Этот складская позиция зарезервирована заказом на производство"
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr "Это отслеживаемая складская позиция. Она имеет уникальный серийный номер и количество не может быть изменено"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr "предыдущая страница"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr "следующая страница"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr "Место хранения не установлено"
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr "Тесты"
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr "Эта складская позиция не прошла требуемое тестирование"
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr "QR-код складской позиции"
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr "Привязать штрих-код к складской позиции"
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr "Предупреждение"
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr "Преобразовать складскую позицию"
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr "Вернуть на склад"
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr "Настройки заказов на продажу"
msgid "Stock Settings"
msgstr "Настройки склада"
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr "Прикрепить файл"
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr "Редактировать Позицию"
msgid "Delete line item"
msgstr "Удалить позицию"
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po
index 1ddbe1cdfa21..84a12d72720c 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Slovak\n"
"Language: sk_SK\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr ""
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr ""
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr ""
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr ""
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr ""
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr ""
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr ""
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr ""
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr ""
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr ""
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr ""
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr ""
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po
index 8eefbfb2e1ff..720fe6add81c 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Slovenian\n"
"Language: sl_SI\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Kitajščina (tradicionalno)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] Prijavite se v aplikacijo"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Podvojena imena ne morejo obstajati pod istim nadrejenim elementom"
msgid "Invalid choice"
msgstr "Nedovoljena izbira"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Ime"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Napaka strežnika"
msgid "An error has been logged by the server."
msgstr "Zaznana napaka na strežniku."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Mora biti veljavna številka"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Izberite valuto med razpoložljivimi možnostmi"
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "Nimate dovoljenja za spreminjanje vloge tega uporabnika."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Samo superuporabniki lahko ustvarijo nove uporabnike"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "Vaš račun je bil ustvarjen."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "Za prijavo uporabite funkcijo ponastavitve gesla"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "Dobrodošli v InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Neveljavna vrednost"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Podatki datoteke"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Izberite datoteke za naložiti"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Nepodprta vrsta datotek"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Datoteka je prevelika"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "V datoteki ni bilo najdenih stolpcev"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "V datoteki ni bilo njadenih vrstic"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Niso bile podane vrste s podatki"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Niso bili podani stolpci s podatki"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Manjka obvezni stolpec: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Dvojni stolpec: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Oddaljena slika"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "Povezava do oddaljene slike"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "Prenos slik iz oddaljene povezave ni omogočen"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Nadzor dela v ozadju neuspel"
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr "Izgradnja mora biti najprej preklicana, nato je lahko izbrisana"
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "Izgradnja mora biti najprej preklicana, nato je lahko izbrisana"
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr "Nalog izgradnje"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr "Referenca naloga izgradnje"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Zunanja povezava"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Zunanja povezava"
@@ -1110,7 +1110,7 @@ msgstr "Nalog izgradnje {build} je dokončan"
msgid "A build order has been completed"
msgstr "Nalog izgradnej dokončan"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "Ni določena izgradnja"
@@ -1122,37 +1122,37 @@ msgstr "Igradnja je že dokončana"
msgid "Build output does not match Build Order"
msgstr "Izgradnja se ne ujema s nalogom izdelave"
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr "Količina"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
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:1595
+#: build/models.py:1606
#, 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:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "Preveč zaloge je prestavljene"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "Prestavljena količina mora biti večja od 0"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "Količina za zalogo s serijsko številko mora biti 1"
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr "Postavka zaloge"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Izvorna postavka zaloge"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Količina zaloge za prestavljanje za izgradnjo"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Inštaliraj v"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Destinacija postavke zaloge"
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "Preklicano"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Končano"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Uporabnik"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr "Povezava"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Priloga"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Manjka datoteka"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Manjka zunanja povezava"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Izberite prilogo"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Komentar"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Ime datoteke"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Izdelava"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po
index 4c07e4fbcb5e..86aaf65ea3e2 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Serbian (Latin)\n"
"Language: sr_CS\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Kineski (Tradicionalni)"
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Dvostruka imena ne mogu postojati pod istom nadredjenom grupom"
msgid "Invalid choice"
msgstr "Nevažeći izvor"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Ime"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Greška servera"
msgid "An error has been logged by the server."
msgstr "Server je zabležio grešku."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Mora biti važeći broj"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Odaberite valutu među dostupnim opcijama"
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "Nemate dozvolu za promenu ove korisničke uloge."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Samo superkorisnici mogu kreirati nove korisnike"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Nevažeća vrednost"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Datoteka"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Odaberite datoteku za učitavanje"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Nije podržan tip datoteke"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Prevelika datoteka"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Nisu pronađene kolone podataka u datoteci"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Nisu pronađeni redovi podataka u datoteci"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Nisu navedeni redovi podataka"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Nisu obezbeđene kolone podataka"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Nedostaje potrebna kolona: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Duplicirana kolona: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Udaljena slika"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "URL udaljene slike"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "Preuzimanje slika s udaljenog URL-a nije omogućeno"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Provera pozadinskog radnika nije uspjela"
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr "Nalog za izradu"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr "Reference naloga za pravljenje"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Link za eksterni URL"
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "Otkazano"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Gotovo"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Korisnik"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Prilog"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Nedostaje datoteka"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Nedostaje eksterni link"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Izaberite datoteku za prilog"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Komentar"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Ime datoteke"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po
index 902fd533016e..823d569d6f8b 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Kinesiska (Traditionell)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] Logga in på appen"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr "Ogiltigt val"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Namn"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Serverfel"
msgid "An error has been logged by the server."
msgstr "Ett fel har loggats av servern."
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Måste vara ett giltigt nummer"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Välj valuta från tillgängliga alternativ"
msgid "Username"
msgstr "Användarnamn"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "Förnamn"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr "Förnamn på användaren"
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "Efternamn"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr "Efternamn på användaren"
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr "Avsändarens E-postadress"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr "Personal"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr "Har den här användaren behörighet för personal"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr "Superanvändare"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr "Är den här användaren en superanvändare"
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr "Är den här användaren en superanvändare"
msgid "Active"
msgstr "Aktiv"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr "Är detta användarkonto aktivt"
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "Du har inte behörighet att ändra denna användarrollen."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Endast superanvändare kan skapa nya användare"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "Ditt konto har skapats."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "Använd funktionen för lösenordsåterställning för att logga in"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "Välkommen till InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Ogiltigt värde"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Datafil"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Välj fil för uppladdning"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Filtypen stöds inte"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Filen är för stor"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Inga kolumner hittades i filen"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Inga rader hittades i filen"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Inga rader angivna"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Inga datakolumner har angetts"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Saknar obligatorisk kolumn: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Duplicerad kolumn: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Fjärransluten bild"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "URL för fjärrbildsfil"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "Nedladdning av bilder från fjärr-URL är inte aktiverad"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Kontroll av bakgrundsarbetare misslyckades"
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr "Tillverkningen måste avbrytas innan den kan tas bort"
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "Tillverkningen måste avbrytas innan den kan tas bort"
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "Valfri"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr "Allokerad"
msgid "Available"
msgstr "Tillgänglig"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Tillgänglig"
msgid "Build Order"
msgstr "Byggorder"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr "Tillverknings order referens"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "Tillverknings order till vilken detta produkt är tilldelad"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Extern länk"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Länk till extern URL"
@@ -1110,7 +1110,7 @@ msgstr "Tillverknings order {build} har slutförts"
msgid "A build order has been completed"
msgstr "En tillverknings order har slutförts"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "Ingen byggutgång angiven"
@@ -1122,37 +1122,37 @@ msgstr "Byggutgång är redan slutförd"
msgid "Build output does not match Build Order"
msgstr "Byggutgång matchar inte bygg order"
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr "Antal"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
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:1595
+#: build/models.py:1606
#, 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:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "Lagerposten är överallokerad"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "Allokeringsmängden måste vara större än noll"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "Antal måste vara 1 för serialiserat lager"
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr "Artikel i lager"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Källa lagervara"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Lagersaldo att allokera för att bygga"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Installera till"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Destination lagervara"
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "Ange serienummer för att tillverkade produkter"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr "Plats för färdiga produkter"
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr "Serienummer"
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "Avbruten"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Slutför"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr "Ta bort bygge"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr "Slutförd produktion"
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr "Ofullständig produktion"
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "dagar"
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "Sidstorlek"
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr "Standard sidstorlek för PDF-rapporter"
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr "Aktivera testrapporter"
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Förhindra produktion från att slutföras tills alla nödvändiga tester är klara"
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr "Aktivera registrering"
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr "Tillåtna domäner"
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr "Aktivera projektkoder"
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr "Visa nyheter"
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr "Sök efter artiklar"
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr "Sök efter leverantörsartikel"
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr "Sök efter tillverkarartikel"
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr "Datumformat"
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Användare"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr "Länk"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "Bild"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Bilaga"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Saknad fil"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Extern länk saknas"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Välj fil att bifoga"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Kommentar"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr "Filstorlek"
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
-msgstr ""
+msgstr "Etikett"
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr "Färg"
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr "Schemalagda uppgifter"
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Filnamn"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr "Leverantör"
msgid "Select supplier"
msgstr "Välj leverantör"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr "Företagsnamn"
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr "Radera bild"
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5443,7 +5440,7 @@ msgstr ""
#: order/api.py:132
msgid "Has Project Code"
-msgstr ""
+msgstr "Har projektkod"
#: order/api.py:155 templates/js/translated/table_filters.js:201
#: templates/js/translated/table_filters.js:791
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr "Kategorinamn"
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr "Datum"
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr "Välj kategori"
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr "Kopiera bild"
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr "Generera rapport"
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr "Uppdatera"
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr "Redigera"
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Bygg"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr "föregående sida"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr "nästa sida"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr "Redigera lagerstatus"
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr "Varning"
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr "Lägg till bilaga"
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po
index 5527d0d08b6b..f27e94a39a0d 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr ""
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "ชื่อ"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "เกิดข้อผิดพลาดที่เซิร์ฟเ
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "ต้องเป็นตัวเลข"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr ""
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "ยินดีต้อนรับเข้าสู่ Inventree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "ไฟล์ข้อมูล"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "เลือกไฟล์ข้อมูลที่จะอัปโหลด"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "ไฟล์มีขนาดใหญ่เกินไป"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr ""
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "จำนวนต้องมีค่ามากกว่า 0"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "ยกเลิกแล้ว"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "สำเร็จแล้ว"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "ผู้ใช้งาน"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr "ลิงก์"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "ไฟล์แนบ"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "ไม่พบไฟล์"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr ""
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "เลือกไฟล์ที่ต้องการแนบ"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "ความคิดเห็น"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "ชื่อไฟล์"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po
index 8b94893667c7..4e2121f14577 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -126,7 +126,7 @@ msgstr "Her seferind eaynı e-posta adresini yazmalısınız."
#: InvenTree/forms.py:221
msgid "MFA Registration is disabled."
-msgstr ""
+msgstr "MFA Kaydı etkisizleştirildi."
#: InvenTree/forms.py:259 InvenTree/forms.py:267
msgid "The provided primary email address is not valid."
@@ -213,7 +213,7 @@ msgstr "Sağlanan URL geçerli bir resim dosyası değil"
#: InvenTree/locales.py:18
msgid "Arabic"
-msgstr ""
+msgstr "Arapça"
#: InvenTree/locales.py:19
msgid "Bulgarian"
@@ -249,7 +249,7 @@ msgstr "İspanyolca(Meksika)"
#: InvenTree/locales.py:27
msgid "Estonian"
-msgstr ""
+msgstr "Estonca"
#: InvenTree/locales.py:28
msgid "Farsi / Persian"
@@ -289,7 +289,7 @@ msgstr "Korece"
#: InvenTree/locales.py:37
msgid "Latvian"
-msgstr ""
+msgstr "Letonca"
#: InvenTree/locales.py:38
msgid "Dutch"
@@ -313,7 +313,7 @@ msgstr "Portekizce (Brezilya)"
#: InvenTree/locales.py:43
msgid "Romanian"
-msgstr ""
+msgstr "Romen"
#: InvenTree/locales.py:44
msgid "Russian"
@@ -345,7 +345,7 @@ msgstr "Türkçe"
#: InvenTree/locales.py:51
msgid "Ukrainian"
-msgstr ""
+msgstr "Ukraynaca"
#: InvenTree/locales.py:52
msgid "Vietnamese"
@@ -364,7 +364,7 @@ msgstr "Çince (Geleneksel)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] Uygulamaya giriş yap"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Aynı kaynak altında birden fazla aynı isim kullanılamaz"
msgid "Invalid choice"
msgstr "Geçersiz seçim"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Adı"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Sunucu Hatası"
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:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Geçerli bir numara olmalı"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -534,45 +534,45 @@ msgstr "Var olan seçeneklerden bir döviz birimi seçin"
#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33
msgid "Username"
-msgstr ""
+msgstr "Kullanıcı Adı"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
-msgstr ""
+msgstr "Adı"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
-msgstr ""
+msgstr "Kullanıcının adı"
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
-msgstr ""
+msgstr "Soyadı"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
-msgstr ""
+msgstr "Kullanıcının soyadı"
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
-msgstr ""
+msgstr "Kullanıcının e-posta adresi"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
-msgstr ""
+msgstr "Personel"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
-msgstr ""
+msgstr "Bu kullanıcının personel izinleri var mı"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
-msgstr ""
+msgstr "Süper Kullanıcı"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
-msgstr ""
+msgstr "Bu kullanıcı bir süper kullanıcı mı"
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr "Aktif"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
-msgstr ""
+msgstr "Bu kullanıcı hesabı etkin mi"
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "Bu kullanıcı rolünü değiştirmek için izniniz yok."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Sadece süper kullanıcılar yeni kullanıcı oluşturabilir"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "Kullanıcı hesabınız oluşturulmuştur."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "Giriş yapmak için lütfen şifre sıfırlama fonksiyonunu kullanınız"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "InvenTree'ye Hoşgeldiniz"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Geçersiz değer"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Veri Dosyası"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Yüklemek istediğiniz dosyayı seçin"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Desteklenmeyen dsoya tipi"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Dosya boyutu çok büyük"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Dosyada kolon bulunamadı"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Dosyada satır bulunamadı"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Dosyada satır bulunamadı"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Dosyada uygun kolon bulunamadı"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Gerekli kolon ismi eksik:'{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Tekrarlanan kolon ismi:'{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Uzaktan Görüntüler"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "Uzaktan görüntü dosya URL'si"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
-msgstr ""
+msgstr "Uzak URL'den resim indirmek etkinleştirilmedi"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Arka plan çalışanı kontrolü başarısız oldu"
@@ -681,11 +681,11 @@ msgstr "InvenTree sistem sağlık kontrolü başarısız"
#: InvenTree/templatetags/inventree_extras.py:184
msgid "Unknown database"
-msgstr ""
+msgstr "Bilinmeyen veritabanı"
#: InvenTree/validators.py:32
msgid "Invalid physical unit"
-msgstr ""
+msgstr "Geçersiz fiziksel birim"
#: InvenTree/validators.py:38
msgid "Not a valid currency code"
@@ -701,7 +701,7 @@ msgstr "Fazlalık %100'ü geçmemelidir"
#: InvenTree/validators.py:139
msgid "Invalid value for overage"
-msgstr ""
+msgstr "Aşım için geçersiz değer"
#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23
msgid "Edit User Information"
@@ -717,7 +717,7 @@ msgstr "Parola alanları eşleşmelidir"
#: InvenTree/views.py:441
msgid "Wrong password provided"
-msgstr ""
+msgstr "Sağlanan şifre yanlış"
#: InvenTree/views.py:645 templates/navbar.html:160
msgid "System Information"
@@ -735,14 +735,14 @@ msgstr "Üst Yapım İşi"
#: build/api.py:59
msgid "Ancestor Build"
-msgstr ""
+msgstr "Ata Yapım"
#: build/api.py:78 order/api.py:92 templates/js/translated/table_filters.js:101
#: templates/js/translated/table_filters.js:549
#: templates/js/translated/table_filters.js:633
#: templates/js/translated/table_filters.js:674
msgid "Assigned to me"
-msgstr ""
+msgstr "Bana atandı"
#: build/api.py:95 build/templates/build/build_base.html:205
#: build/templates/build/detail.html:115
@@ -753,31 +753,31 @@ msgstr "Veren"
#: build/api.py:114
msgid "Assigned To"
-msgstr ""
+msgstr "Atanılan Kişi"
#: build/api.py:275
msgid "Build must be cancelled before it can be deleted"
-msgstr ""
+msgstr "Yapımın silinebilmesi için önce iptal edilmesi gerekir"
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
#: templates/js/translated/table_filters.js:586
msgid "Consumable"
-msgstr ""
+msgstr "Sarf Malzemesi"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
#: templates/js/translated/table_filters.js:222
#: templates/js/translated/table_filters.js:590
msgid "Optional"
-msgstr ""
+msgstr "İsteğe Bağlı"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -787,20 +787,20 @@ msgstr "Montaj"
#: build/api.py:322 templates/js/translated/table_filters.js:415
#: templates/js/translated/table_filters.js:582
msgid "Tracked"
-msgstr ""
+msgstr "İzlenen"
#: build/api.py:323 build/serializers.py:1334 part/models.py:1184
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:779
msgid "Testable"
-msgstr ""
+msgstr "Test Edilebilir"
#: build/api.py:325 part/admin.py:144 templates/js/translated/build.js:1920
#: templates/js/translated/build.js:2823
#: templates/js/translated/sales_order.js:1965
#: templates/js/translated/table_filters.js:574
msgid "Allocated"
-msgstr ""
+msgstr "Ayrıldı"
#: build/api.py:333 company/models.py:888 company/serializers.py:399
#: company/templates/company/supplier_part.html:114
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr "Mevcut"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Mevcut"
msgid "Build Order"
msgstr "Yapım İşi Emri"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -838,27 +838,27 @@ msgstr "Yapım İşi Emirleri"
#: build/models.py:136
msgid "Assembly BOM has not been validated"
-msgstr ""
+msgstr "Montaj malzeme listesi doğrulanmadı"
#: build/models.py:143
msgid "Build order cannot be created for an inactive part"
-msgstr ""
+msgstr "İnaktif bir parça için yapım siparişi oluşturulamaz"
#: build/models.py:150
msgid "Build order cannot be created for an unlocked part"
-msgstr ""
+msgstr "Kilidi açılmış bir parça için yapım siparişi oluşturulamaz"
#: build/models.py:164
msgid "Invalid choice for parent build"
-msgstr ""
+msgstr "Üst yapım için geçersiz seçim"
#: build/models.py:175 order/models.py:240
msgid "Responsible user or group must be specified"
-msgstr ""
+msgstr "Sorumlu kullanıcı veya grup belirtilmelidir"
#: build/models.py:181
msgid "Build order part cannot be changed"
-msgstr ""
+msgstr "Yapım siparişi parçası değiştirilemez"
#: build/models.py:242
msgid "Build Order Reference"
@@ -866,7 +866,7 @@ msgstr "Yapım İşi Emri Referansı"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -882,7 +882,7 @@ msgstr "Referans"
#: build/models.py:254
msgid "Brief description of the build (optional)"
-msgstr ""
+msgstr "Yapımın kısa açıklaması (isteğe bağlı)"
#: build/models.py:263
msgid "BuildOrder to which this build is allocated"
@@ -892,11 +892,11 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1054,7 +1054,7 @@ msgstr "Sorumlu"
#: build/models.py:372
msgid "User or group responsible for this build order"
-msgstr ""
+msgstr "Bu yapım siparişinden sorumlu kullanıcı veya grup"
#: build/models.py:377 build/templates/build/detail.html:108
#: company/templates/company/manufacturer_part.html:107
@@ -1063,23 +1063,23 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Harici Bağlantı"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Harici URL'ye bağlantı"
#: build/models.py:382
msgid "Build Priority"
-msgstr ""
+msgstr "Yapım Önceliği"
#: build/models.py:385
msgid "Priority of this build order"
-msgstr ""
+msgstr "Bu yapım siparişinin önceliği"
#: build/models.py:392 common/models.py:137 common/models.py:151
#: order/admin.py:18 order/api.py:128 order/models.py:298
@@ -1095,22 +1095,22 @@ msgstr "Proje Kodu"
#: build/models.py:393
msgid "Project code for this build order"
-msgstr ""
+msgstr "Bu yapım siparişi için proje kodu"
#: build/models.py:652 build/models.py:779
msgid "Failed to offload task to complete build allocations"
-msgstr ""
+msgstr "Yapıma ayrılanları tamamlamak için boşaltma görevi başarısız oldu"
#: build/models.py:674
#, python-brace-format
msgid "Build order {build} has been completed"
-msgstr ""
+msgstr "{build} yapım siparişi tamamlandı"
#: build/models.py:680
msgid "A build order has been completed"
-msgstr ""
+msgstr "Bir yapım siparişi tamamlandı"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "Yapım işi çıktısı belirtilmedi"
@@ -1122,37 +1122,37 @@ msgstr "Yapım işi çıktısı zaten tamamlanmış"
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:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
-msgstr ""
+msgstr "Miktar sıfırdan büyük olmalıdır"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
-msgstr ""
+msgstr "Miktar çıktı miktarından büyük olamaz"
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
-msgstr ""
+msgstr "{serial} yapım çıktısı gerekli testleri geçemedi"
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
-msgstr ""
+msgstr "Yapım Siparişi Satır Ögesi"
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
-msgstr ""
+msgstr "Nesne yap"
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr "Miktar"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
-msgstr ""
+msgstr "Yapım siparişi için gereken miktar"
-#: build/models.py:1586
+#: build/models.py:1597
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:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
-msgstr ""
+msgstr "Ayrılan miktar ({q}) mevcut stok miktarını ({a}) aşmamalı"
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "Seri numaralı stok için miktar bir olmalı"
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
-msgstr ""
+msgstr "Seçilen stok ögesi malzeme listesi satırıyla eşleşmiyor"
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,64 +1241,64 @@ msgstr ""
msgid "Stock Item"
msgstr "Stok Kalemi"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Kaynak stok kalemi"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "Yapım işi için tahsis edilen stok miktarı"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Kurulduğu yer"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Hedef stok kalemi"
#: build/serializers.py:107
msgid "Build Level"
-msgstr ""
+msgstr "Yapım Düzeyi"
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
-msgstr ""
+msgstr "Parça Adı"
#: build/serializers.py:127
msgid "Project Code Label"
-msgstr ""
+msgstr "Proje Kodu Etiketi"
#: build/serializers.py:133
msgid "Create Child Builds"
-msgstr ""
+msgstr "Alt Yapımlar Oluştur"
#: build/serializers.py:134
msgid "Automatically generate child build orders"
-msgstr ""
+msgstr "Alt yapım siparişlerini otomatik olarak -üret"
#: build/serializers.py:216 build/serializers.py:968
#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498
msgid "Build Output"
-msgstr ""
+msgstr "Yapım Çıktısı"
#: build/serializers.py:228
msgid "Build output does not match the parent build"
-msgstr ""
+msgstr "Yapım çıktısı üst yapım ile eşleşmiyor"
#: build/serializers.py:232
msgid "Output part does not match BuildOrder part"
-msgstr ""
+msgstr "Çıktı parçası Yapım Siparişi parçası ile eşleşmiyor"
#: build/serializers.py:236
msgid "This build output has already been completed"
-msgstr ""
+msgstr "Bu yapım çıktısı zaten tamamlandı"
#: build/serializers.py:247
msgid "This build output is not fully allocated"
-msgstr ""
+msgstr "Bu yapım çıktısı tam ayrılmadı"
#: build/serializers.py:267 build/serializers.py:314
msgid "Enter quantity for build output"
@@ -1306,11 +1306,11 @@ msgstr "Yapım işi çıktısı için miktarını girin"
#: build/serializers.py:335
msgid "Integer quantity required for trackable parts"
-msgstr ""
+msgstr "İzlenebilir parçalar için tamsayı miktar gerekir"
#: build/serializers.py:338
msgid "Integer quantity required, as the bill of materials contains trackable parts"
-msgstr ""
+msgstr "Malzeme listesi izlenebilir parçalar içerdiğinden tamsayı miktar gereklidir"
#: build/serializers.py:353 order/serializers.py:679 order/serializers.py:1468
#: stock/serializers.py:687 templates/js/translated/purchase_order.js:1154
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "Yapım işi çıktısı için seri numaraları girin"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1344,53 +1344,53 @@ msgstr "Konum"
#: build/serializers.py:360
msgid "Stock location for build output"
-msgstr ""
+msgstr "Yapım çıktısı için stok konumu"
#: build/serializers.py:374
msgid "Auto Allocate Serial Numbers"
-msgstr ""
+msgstr "Seri Numaralarını Otomatik Ayır"
#: build/serializers.py:375
msgid "Automatically allocate required items with matching serial numbers"
-msgstr ""
+msgstr "Gerekli ögeleri eşleşen seri numaralarıyla otomatik ayır"
#: build/serializers.py:390
msgid "Serial numbers must be provided for trackable parts"
-msgstr ""
+msgstr "İzlenebilir parçalar için seri numaraları sağlanmalıdır"
#: build/serializers.py:415 stock/api.py:1024
msgid "The following serial numbers already exist or are invalid"
-msgstr ""
+msgstr "Şu seri numaraları zaten varlar veya geçersizler"
#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613
msgid "A list of build outputs must be provided"
-msgstr ""
+msgstr "Bir yapım çıktıları listesi sağlanmalıdır"
#: build/serializers.py:501
msgid "Stock location for scrapped outputs"
-msgstr ""
+msgstr "Hurdaya ayrılan çıktılar için stok konumu"
#: build/serializers.py:507
msgid "Discard Allocations"
-msgstr ""
+msgstr "Ayırmaları İptal Et"
#: build/serializers.py:508
msgid "Discard any stock allocations for scrapped outputs"
-msgstr ""
+msgstr "Hurdaya ayrılan çıktılar için yapılan tüm stok ayırmalarını iptal et"
#: build/serializers.py:513
msgid "Reason for scrapping build output(s)"
-msgstr ""
+msgstr "Yapım çıktı(larını) hurdaya ayırma nedeni"
#: build/serializers.py:573
msgid "Location for completed build outputs"
-msgstr ""
+msgstr "Tamamlanan yapım çıktıları içi konum"
#: build/serializers.py:579 build/templates/build/build_base.html:159
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1403,59 +1403,59 @@ msgstr "Durum"
#: build/serializers.py:585
msgid "Accept Incomplete Allocation"
-msgstr ""
+msgstr "Tamamlanmamış Ayırmayı Onayla"
#: build/serializers.py:586
msgid "Complete outputs if stock has not been fully allocated"
-msgstr ""
+msgstr "Stok tamamen ayrılmamışsa çıktıları tamamla"
#: build/serializers.py:698
msgid "Consume Allocated Stock"
-msgstr ""
+msgstr "Ayrılan Stoku Tüket"
#: build/serializers.py:699
msgid "Consume any stock which has already been allocated to this build"
-msgstr ""
+msgstr "Bu yapım için zaten ayrılmış olan tüm stokları tüket"
#: build/serializers.py:705
msgid "Remove Incomplete Outputs"
-msgstr ""
+msgstr "Tamamlanmamış Çıktıları Kaldır"
#: build/serializers.py:706
msgid "Delete any build outputs which have not been completed"
-msgstr ""
+msgstr "Tamamlanmamış tüm yapım çıktılarını sil"
#: build/serializers.py:733
msgid "Not permitted"
-msgstr ""
+msgstr "İzin verilmedi"
#: build/serializers.py:734
msgid "Accept as consumed by this build order"
-msgstr ""
+msgstr "Bu yapım siparişi tarafından tüketildi olarak kabul et"
#: build/serializers.py:735
msgid "Deallocate before completing this build order"
-msgstr ""
+msgstr "Bu yapım emrini tamamlamadan önce iade et"
#: build/serializers.py:765
msgid "Overallocated Stock"
-msgstr ""
+msgstr "Fazla Ayrılmış Stok"
#: build/serializers.py:767
msgid "How do you want to handle extra stock items assigned to the build order"
-msgstr ""
+msgstr "Yapım siparişine atanan ekstra stok öğelerini nasıl ele almak istersiniz"
#: build/serializers.py:777
msgid "Some stock items have been overallocated"
-msgstr ""
+msgstr "Bazı stok ögeleri fazla ayrıldı"
#: build/serializers.py:782
msgid "Accept Unallocated"
-msgstr ""
+msgstr "Ayrılmamışı Kabul Et"
#: build/serializers.py:783
msgid "Accept that stock items have not been fully allocated to this build order"
-msgstr ""
+msgstr "Stok öğelerinin bu yapım siparişine tam olarak ayrılmadığını kabul edin"
#: build/serializers.py:793 templates/js/translated/build.js:319
msgid "Required stock has not been fully allocated"
@@ -1463,11 +1463,11 @@ msgstr "Gerekli stok tamamen tahsis edilemedi"
#: build/serializers.py:798 order/serializers.py:346 order/serializers.py:1369
msgid "Accept Incomplete"
-msgstr ""
+msgstr "Tamamlanmamış Kabul et"
#: build/serializers.py:799
msgid "Accept that the required number of build outputs have not been completed"
-msgstr ""
+msgstr "Gerekli sayıda derleme çıktısının tamamlanmadığını kabul edin"
#: build/serializers.py:809 templates/js/translated/build.js:323
msgid "Required build quantity has not been completed"
@@ -1475,100 +1475,100 @@ msgstr "Gerekli yapım işi miktarı tamamlanmadı"
#: build/serializers.py:818
msgid "Build order has open child build orders"
-msgstr ""
+msgstr "Yapım siparişinin açık alt yapım emirleri var"
#: build/serializers.py:821
msgid "Build order must be in production state"
-msgstr ""
+msgstr "Yapım siparişi üretim durumunda olmalıdır"
#: build/serializers.py:824 templates/js/translated/build.js:307
msgid "Build order has incomplete outputs"
-msgstr ""
+msgstr "Yapım siparişinin tamamlanmamış çıktıları var"
#: build/serializers.py:862
msgid "Build Line"
-msgstr ""
+msgstr "Yapım Satırı"
#: build/serializers.py:872
msgid "Build output"
-msgstr ""
+msgstr "Yapım çıktısı"
#: build/serializers.py:880
msgid "Build output must point to the same build"
-msgstr ""
+msgstr "Yapım çıktısı aynı yapımı göstermelidir"
#: build/serializers.py:916
msgid "Build Line Item"
-msgstr ""
+msgstr "Yapım Satırı Ögesi"
#: build/serializers.py:930
msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
+msgstr "bom_item.part yapım siparişi aynı olan parçayı göstermelidir"
#: build/serializers.py:945 stock/serializers.py:1301
msgid "Item must be in stock"
-msgstr ""
+msgstr "Öge stokta olmalıdır"
#: build/serializers.py:993 order/serializers.py:1355
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
-msgstr ""
+msgstr "Mevcut miktar ({q}) aşıldı"
#: build/serializers.py:999
msgid "Build output must be specified for allocation of tracked parts"
-msgstr ""
+msgstr "İzlenen parçaların ayrılması için yapım çıktısı belirtilmelidir"
#: build/serializers.py:1006
msgid "Build output cannot be specified for allocation of untracked parts"
-msgstr ""
+msgstr "İzlenmeyen parçaların ayrılması için yapım çıktısı belirlenemez"
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
-msgstr ""
+msgstr "Ayrılma ögeleri sağlanmalıdır"
#: build/serializers.py:1093
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
-msgstr ""
+msgstr "Parçaların alınacağı stok konumu (herhangi bir konumdan almak için boş bırakın)"
#: build/serializers.py:1101
msgid "Exclude Location"
-msgstr ""
+msgstr "Konum Çıkar"
#: build/serializers.py:1102
msgid "Exclude stock items from this selected location"
-msgstr ""
+msgstr "Bu seçilen konumdan stok ögelerini içerme"
#: build/serializers.py:1107
msgid "Interchangeable Stock"
-msgstr ""
+msgstr "Birbirinin Yerine Kullanılabilir Stok"
#: build/serializers.py:1108
msgid "Stock items in multiple locations can be used interchangeably"
-msgstr ""
+msgstr "Birden çok konumdaki stok ögeleri birbirinin yerine kullanılabilir"
#: build/serializers.py:1113
msgid "Substitute Stock"
-msgstr ""
+msgstr "Yedek Stok"
#: build/serializers.py:1114
msgid "Allow allocation of substitute parts"
-msgstr ""
+msgstr "Yedek parçaların ayrılmasına izin ver"
#: build/serializers.py:1119
msgid "Optional Items"
-msgstr ""
+msgstr "İsteğe Bağlı Ögeler"
#: build/serializers.py:1120
msgid "Allocate optional BOM items to build order"
-msgstr ""
+msgstr "Sipariş yapmak için isteğe bağlı ML ögelerini ayır"
#: build/serializers.py:1142
msgid "Failed to start auto-allocation task"
-msgstr ""
+msgstr "Otomatik ayırma görevini başlatma başarısız oldu"
#: build/serializers.py:1225
msgid "Supplier Part Number"
-msgstr ""
+msgstr "Sağlayıcı Parça Numarası"
#: build/serializers.py:1226 company/models.py:503
msgid "Manufacturer Part Number"
@@ -1577,20 +1577,20 @@ msgstr "Üretici Parça Numarası"
#: build/serializers.py:1227 stock/admin.py:53 stock/admin.py:176
#: stock/serializers.py:464
msgid "Location Name"
-msgstr ""
+msgstr "Konum Adı"
#: build/serializers.py:1228
msgid "Build Reference"
-msgstr ""
+msgstr "Yapım Referansı"
#: build/serializers.py:1229
msgid "BOM Reference"
-msgstr ""
+msgstr "ML Referansı"
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,32 +1600,32 @@ msgid "Packaging"
msgstr "Paketleme"
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
-msgstr ""
+msgstr "Parça ID"
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
-msgstr ""
+msgstr "Parça DPN"
#: build/serializers.py:1236 build/serializers.py:1326 part/admin.py:45
#: part/stocktake.py:220
msgid "Part Description"
-msgstr ""
+msgstr "Parça Açıklaması"
#: build/serializers.py:1239
msgid "BOM Part ID"
-msgstr ""
+msgstr "ML Parça Kimliği"
#: build/serializers.py:1240
msgid "BOM Part Name"
-msgstr ""
+msgstr "ML Parça Adı"
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1642,19 +1642,19 @@ msgstr "Seri Numara"
#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167
#: templates/js/translated/build.js:2519
msgid "Allocated Quantity"
-msgstr ""
+msgstr "Ayrılan Miktar"
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
-msgstr ""
+msgstr "Mavcut Miktar"
#: build/serializers.py:1327
msgid "Part Category ID"
-msgstr ""
+msgstr "Parça Sınıfı Kimliği"
#: build/serializers.py:1328
msgid "Part Category Name"
-msgstr ""
+msgstr "Parça Sınıfı Adı"
#: build/serializers.py:1335 common/models.py:1515 part/admin.py:113
#: part/models.py:1178 templates/js/translated/table_filters.js:150
@@ -1665,60 +1665,60 @@ msgstr "Takip Edilebilir"
#: build/serializers.py:1336
msgid "Inherited"
-msgstr ""
+msgstr "Miras Alındı"
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046
#: templates/js/translated/build.js:2714
msgid "Allow Variants"
msgstr "Çeşide İzin Ver"
-#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
-msgstr ""
+msgstr "ML Ögesi"
#: build/serializers.py:1350 build/templates/build/detail.html:236
#: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130
msgid "Allocated Stock"
-msgstr ""
+msgstr "Ayrılan Stok"
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
#: templates/js/translated/table_filters.js:177
msgid "On Order"
-msgstr ""
+msgstr "Siparişte"
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
-msgstr ""
+msgstr "Üretimde"
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
-msgstr ""
+msgstr "Mevcut Stok"
#: build/serializers.py:1369
msgid "Available Substitute Stock"
-msgstr ""
+msgstr "Mevcut Yedek Stok"
#: build/serializers.py:1370
msgid "Available Variant Stock"
-msgstr ""
+msgstr "Mevcut Turev Stoku"
#: build/serializers.py:1371
msgid "Total Available Stock"
-msgstr ""
+msgstr "Toplam Mevcut Stok"
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
-msgstr ""
+msgstr "Harici Stok"
#: build/status_codes.py:11 generic/states/tests.py:21
#: generic/states/tests.py:131 order/status_codes.py:12
@@ -1734,7 +1734,7 @@ msgstr "Üretim"
#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49
#: order/status_codes.py:79
msgid "On Hold"
-msgstr ""
+msgstr "Beklemede"
#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51
#: order/status_codes.py:82
@@ -1745,26 +1745,26 @@ msgstr "İptal edildi"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Tamamlandı"
#: build/tasks.py:180
msgid "Stock required for build order"
-msgstr ""
+msgstr "Yapım siparişi için gereken stok"
#: build/tasks.py:233
msgid "Overdue Build Order"
-msgstr ""
+msgstr "Gecikmiş Yapım Siparişi"
#: build/tasks.py:238
#, python-brace-format
msgid "Build order {bo} is now overdue"
-msgstr ""
+msgstr "{bo} yapım siparişi şimdi gecikti"
#: build/templates/build/build_base.html:18
msgid "Part thumbnail"
-msgstr ""
+msgstr "Parçanın küçük resmi"
#: build/templates/build/build_base.html:38
#: company/templates/company/supplier_part.html:35
@@ -1787,7 +1787,7 @@ msgstr "Barkod işlemleri"
#: stock/templates/stock/item_base.html:44
#: stock/templates/stock/location.html:54 templates/qr_button.html:1
msgid "Show QR Code"
-msgstr ""
+msgstr "QR Kodunu Göster"
#: build/templates/build/build_base.html:45
#: company/templates/company/supplier_part.html:41
@@ -1800,7 +1800,7 @@ msgstr ""
#: templates/js/translated/barcode.js:527
#: templates/js/translated/barcode.js:532
msgid "Unlink Barcode"
-msgstr ""
+msgstr "Barkodun Bağlantısını Kaldır"
#: build/templates/build/build_base.html:47
#: company/templates/company/supplier_part.html:43
@@ -1811,7 +1811,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:49
#: stock/templates/stock/location.html:58
msgid "Link Barcode"
-msgstr ""
+msgstr "Barkod Bağla"
#: build/templates/build/build_base.html:56
#: order/templates/order/order_base.html:46
@@ -1822,7 +1822,7 @@ msgstr "Yazdırma işlemleri"
#: build/templates/build/build_base.html:60
msgid "Print build order report"
-msgstr ""
+msgstr "Yapım siparişi raporu yazdır"
#: build/templates/build/build_base.html:67
msgid "Build actions"
@@ -1834,11 +1834,11 @@ msgstr "Yapım İşini Düzenle"
#: build/templates/build/build_base.html:73
msgid "Duplicate Build"
-msgstr ""
+msgstr "Yapımı Çoğalt"
#: build/templates/build/build_base.html:76
msgid "Hold Build"
-msgstr ""
+msgstr "Yapımı Beklet"
#: build/templates/build/build_base.html:79
msgid "Cancel Build"
@@ -1846,15 +1846,12 @@ msgstr "Yapım İşini İptal Et"
#: build/templates/build/build_base.html:82
msgid "Delete Build"
-msgstr ""
+msgstr "Yapımı Sil"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
-msgstr ""
+msgstr "Yapımı Başlat"
#: build/templates/build/build_base.html:91
#: build/templates/build/build_base.html:92
@@ -1863,11 +1860,11 @@ msgstr "Tamamlanmış Yapım İşi"
#: build/templates/build/build_base.html:115
msgid "Build Description"
-msgstr ""
+msgstr "Yapım Açıklaması"
#: build/templates/build/build_base.html:125
msgid "No build outputs have been created for this build order"
-msgstr ""
+msgstr "Bu yapım siparişi için hiç yapım çıktısı oluşturulmadı"
#: build/templates/build/build_base.html:132
msgid "Build Order is ready to mark as completed"
@@ -1922,7 +1919,7 @@ msgstr "Vadesi geçmiş"
#: build/templates/build/build_base.html:185
#: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13
msgid "Completed Outputs"
-msgstr ""
+msgstr "Tamamalanan Çıktılar"
#: build/templates/build/build_base.html:198
#: build/templates/build/detail.html:101 order/api.py:1393 order/models.py:893
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1943,27 +1940,27 @@ msgstr "Sipariş Emri"
#: build/templates/build/build_base.html:219
#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331
msgid "Priority"
-msgstr ""
+msgstr "Öncelik"
#: build/templates/build/build_base.html:267
msgid "Issue Build Order"
-msgstr ""
+msgstr "Yapım Siparişi Ver"
#: build/templates/build/build_base.html:271
msgid "Issue this Build Order?"
-msgstr ""
+msgstr "Bu Yapımın Siparişi Verilsin mi?"
#: build/templates/build/build_base.html:302
msgid "Delete Build Order"
-msgstr ""
+msgstr "Yapım Siparişini Sil"
#: build/templates/build/build_base.html:312
msgid "Build Order QR Code"
-msgstr ""
+msgstr "Yapım Siparişinin QR Kodu"
#: build/templates/build/build_base.html:324
msgid "Link Barcode to Build Order"
-msgstr ""
+msgstr "Yapım Siparişine Barkod Bağla"
#: build/templates/build/detail.html:15
msgid "Build Details"
@@ -1988,10 +1985,10 @@ msgstr "Hedef konumu belirtilmedi"
#: build/templates/build/detail.html:73
msgid "Allocated Parts"
-msgstr ""
+msgstr "Ayrılan Parçalar"
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2030,27 +2027,27 @@ msgstr "Alt Yapım İşi Emrileri"
#: build/templates/build/detail.html:177
msgid "Build Order Line Items"
-msgstr ""
+msgstr "Yapım Siparişi Satır Ögeleri"
#: build/templates/build/detail.html:181
msgid "Deallocate stock"
-msgstr ""
+msgstr "Stok ayırmayı iptal et"
#: build/templates/build/detail.html:182
msgid "Deallocate Stock"
-msgstr ""
+msgstr "Stok Ayırmayı İptal Et"
#: build/templates/build/detail.html:184
msgid "Automatically allocate stock to build"
-msgstr ""
+msgstr "Yapıma stoku otomatik olarak ayır"
#: build/templates/build/detail.html:185
msgid "Auto Allocate"
-msgstr ""
+msgstr "Otomatik Ayır"
#: build/templates/build/detail.html:187
msgid "Manually allocate stock to build"
-msgstr ""
+msgstr "Yapıma stoku elle ayır"
#: build/templates/build/detail.html:188
msgid "Allocate Stock"
@@ -2067,7 +2064,7 @@ msgstr "Parça Siparişi"
#: build/templates/build/detail.html:205
msgid "Available stock has been filtered based on specified source location for this build order"
-msgstr ""
+msgstr "Mevcut stok bu yapım siparişi için belirtilen kaynak konuma göre süzüldü"
#: build/templates/build/detail.html:215
msgid "Incomplete Build Outputs"
@@ -2079,11 +2076,11 @@ msgstr "Yeni yapım işi çıktısı oluştur"
#: build/templates/build/detail.html:220
msgid "New Build Output"
-msgstr ""
+msgstr "Yeni Yapım Çıktısı"
#: build/templates/build/detail.html:249 build/templates/build/sidebar.html:19
msgid "Consumed Stock"
-msgstr ""
+msgstr "Harcanan Stok"
#: build/templates/build/detail.html:261
msgid "Completed Build Outputs"
@@ -2091,7 +2088,7 @@ msgstr "Tamamlanmış Yapım İşi Çıktıları"
#: build/templates/build/detail.html:273
msgid "Build test statistics"
-msgstr ""
+msgstr "Yapım test istatistikleri"
#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27
#: company/templates/company/detail.html:229
@@ -2115,11 +2112,11 @@ msgstr "Yapım İşi Notları"
#: build/templates/build/detail.html:458
msgid "Allocation Complete"
-msgstr ""
+msgstr "Ayrılma Tamam"
#: build/templates/build/detail.html:459
msgid "All lines have been fully allocated"
-msgstr ""
+msgstr "Tüm satırlar tamamen tahsis edildi"
#: build/templates/build/index.html:18 part/templates/part/detail.html:335
msgid "New Build Order"
@@ -2127,7 +2124,7 @@ msgstr "Yeni Yapım İşi Emri"
#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
-msgstr ""
+msgstr "Yapım Siparişi Ayrıntıları"
#: build/templates/build/sidebar.html:8 order/serializers.py:83
#: order/templates/order/po_sidebar.html:5
@@ -2137,7 +2134,7 @@ msgstr ""
#: report/templates/report/inventree_return_order_report.html:19
#: report/templates/report/inventree_sales_order_report.html:22
msgid "Line Items"
-msgstr ""
+msgstr "Satır Ögeleri"
#: build/templates/build/sidebar.html:10
msgid "Incomplete Outputs"
@@ -2146,44 +2143,44 @@ msgstr "Tamamlanmamış Çıktılar"
#: build/templates/build/sidebar.html:24
#: part/templates/part/part_sidebar.html:56
msgid "Test Statistics"
-msgstr ""
+msgstr "Test İstatistikleri"
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
-msgstr ""
+msgstr "Link Olanlar"
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
-msgstr ""
+msgstr "Dosya Olanlar"
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
-msgstr ""
+msgstr "Kullanıcının bu ekleri silmek için izni yok"
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
-msgstr ""
+msgstr "Kullanıcının bu eki silmek için izni yok"
#: common/currency.py:132
msgid "Invalid currency code"
-msgstr ""
+msgstr "Geçersiz para birimi kodu"
#: common/currency.py:134
msgid "Duplicate currency code"
-msgstr ""
+msgstr "Para birimi kodunu çoğalt"
#: common/currency.py:139
msgid "No valid currency codes provided"
-msgstr ""
+msgstr "Geçerli bir para birimi kodu sağlanmamış"
#: common/currency.py:156
msgid "No plugin"
-msgstr ""
+msgstr "Eklenti yok"
#: common/files.py:63
#, python-brace-format
msgid "Unsupported file format: {fmt}"
-msgstr ""
+msgstr "Desteklenmeyen dosya biçimi: {fmt}"
#: common/files.py:65
msgid "Error reading file (invalid encoding)"
@@ -2220,47 +2217,47 @@ msgstr "{name} dosyasını yüklemek için seçin"
#: common/models.py:88
msgid "Updated"
-msgstr ""
+msgstr "Güncellendi"
#: common/models.py:89
msgid "Timestamp of last update"
-msgstr ""
+msgstr "Son güncellemenin zaman damgası"
#: common/models.py:122
msgid "Site URL is locked by configuration"
-msgstr ""
+msgstr "Site URL'si yapılandırma tarafından kilitlendi"
#: common/models.py:152
msgid "Unique project code"
-msgstr ""
+msgstr "Eşsiz proje kodu"
#: common/models.py:159
msgid "Project description"
-msgstr ""
+msgstr "Proje açıklaması"
#: common/models.py:168
msgid "User or group responsible for this project"
-msgstr ""
+msgstr "Bu projeden sorumlu kullanıcı veya grup"
#: common/models.py:785
msgid "Settings key (must be unique - case insensitive)"
-msgstr ""
+msgstr "Ayar anahtarı (eşsiz olmalıdır - büyük/küçük harfe duyarsız)"
#: common/models.py:789
msgid "Settings value"
-msgstr ""
+msgstr "Ayarlar değeri"
#: common/models.py:841
msgid "Chosen value is not a valid option"
-msgstr ""
+msgstr "Seçilen değer geçerli bir seçenek değil"
#: common/models.py:857
msgid "Value must be a boolean value"
-msgstr ""
+msgstr "Değer bir boolean değer olmalıdır"
#: common/models.py:865
msgid "Value must be an integer value"
-msgstr ""
+msgstr "Değer bir integer değer olmalıdır"
#: common/models.py:902
msgid "Key string must be unique"
@@ -2268,47 +2265,47 @@ msgstr "Anahtar dizesi benzersiz olmalı"
#: common/models.py:1134
msgid "No group"
-msgstr ""
+msgstr "Grup yok"
#: common/models.py:1233
msgid "Restart required"
-msgstr ""
+msgstr "Yeniden başlatma gerekli"
#: common/models.py:1235
msgid "A setting has been changed which requires a server restart"
-msgstr ""
+msgstr "Sunucunun yeniden başlatılmasını gerektiren bir ayar değişti"
#: common/models.py:1242
msgid "Pending migrations"
-msgstr ""
+msgstr "Bekleyen taşıma işlemleri"
#: common/models.py:1243
msgid "Number of pending database migrations"
-msgstr ""
+msgstr "Bekleyen veritabanı taşıma sayısı"
#: common/models.py:1248
msgid "Server Instance Name"
-msgstr ""
+msgstr "Sunucu Örneği adı"
#: common/models.py:1250
msgid "String descriptor for the server instance"
-msgstr ""
+msgstr "Sunucu örneği için sözce (string) açıklayıcı"
#: common/models.py:1254
msgid "Use instance name"
-msgstr ""
+msgstr "Örnek adını kullan"
#: common/models.py:1255
msgid "Use the instance name in the title-bar"
-msgstr ""
+msgstr "Örnek adını başlık çubuğunda kullan"
#: common/models.py:1260
msgid "Restrict showing `about`"
-msgstr ""
+msgstr "`Hakkında` gösterimini kısıtla"
#: common/models.py:1261
msgid "Show the `about` modal only to superusers"
-msgstr ""
+msgstr "`Hakkında` kipini yalnızca süper kullanıcılara göster"
#: common/models.py:1266 company/models.py:108 company/models.py:109
msgid "Company name"
@@ -2316,7 +2313,7 @@ msgstr "Şirket adı"
#: common/models.py:1267
msgid "Internal company name"
-msgstr ""
+msgstr "Dahili şirket adı"
#: common/models.py:1271
msgid "Base URL"
@@ -2324,7 +2321,7 @@ msgstr "Ana URL"
#: common/models.py:1272
msgid "Base URL for server instance"
-msgstr ""
+msgstr "Sunucu örneğinn temel URL'i"
#: common/models.py:1278
msgid "Default Currency"
@@ -2332,38 +2329,38 @@ msgstr "Varsayılan Para Birimi"
#: common/models.py:1279
msgid "Select base currency for pricing calculations"
-msgstr ""
+msgstr "Fiyat hesaplamaları için temel para birimini seçin"
#: common/models.py:1285
msgid "Supported Currencies"
-msgstr ""
+msgstr "Desteklenen Para Birimleri"
#: common/models.py:1286
msgid "List of supported currency codes"
-msgstr ""
+msgstr "Desteklenen para birimi kodlarının listesi"
#: common/models.py:1292
msgid "Currency Update Interval"
-msgstr ""
+msgstr "Döviz Güncelleme Aralığı"
#: common/models.py:1294
msgid "How often to update exchange rates (set to zero to disable)"
-msgstr ""
+msgstr "Döviz kurlarını şu sıklıkla güncelle (etkisizleştirmek için sıfır yapın)"
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "günler"
#: common/models.py:1301
msgid "Currency Update Plugin"
-msgstr ""
+msgstr "Döviz Güncelleme Eklentisi"
#: common/models.py:1302
msgid "Currency update plugin to use"
-msgstr ""
+msgstr "Kullanılacak döviz güncelleme eklentisi"
#: common/models.py:1307
msgid "Download from URL"
@@ -2375,91 +2372,91 @@ msgstr "Harici URL'den resim ve dosyaların indirilmesine izin ver"
#: common/models.py:1315
msgid "Download Size Limit"
-msgstr ""
+msgstr "İndirme Boyutu Sınırı"
#: common/models.py:1316
msgid "Maximum allowable download size for remote image"
-msgstr ""
+msgstr "Uzak resimler için izin verilebilir maksimum indirme boyutu"
#: common/models.py:1322
msgid "User-agent used to download from URL"
-msgstr ""
+msgstr "URL'den indirmek için kullanılan kullanıcı aracısı"
#: common/models.py:1324
msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)"
-msgstr ""
+msgstr "Harici URL'den resim ve dosya indirmek için kullanılan kullanıcı aracısını geçersiz kılmaya izin ver (varsayılan için boş bırakın)"
#: common/models.py:1329
msgid "Strict URL Validation"
-msgstr ""
+msgstr "Sıkı URL Doğrulama"
#: common/models.py:1330
msgid "Require schema specification when validating URLs"
-msgstr ""
+msgstr "URL'leri doğrularken şema tanımlamasını gerekli kıl"
#: common/models.py:1335
msgid "Require confirm"
-msgstr ""
+msgstr "Doğrulama gerektir"
#: common/models.py:1336
msgid "Require explicit user confirmation for certain action."
-msgstr ""
+msgstr "Belirli bir eylem için açıkça kullanıcı doğrulamasını gerekli kıl."
#: common/models.py:1341
msgid "Tree Depth"
-msgstr ""
+msgstr "Ağaç Derinliği"
#: common/models.py:1343
msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
-msgstr ""
+msgstr "Ağaç görünümü için varsayılan derinlik. Daha derin düzeyler gerek oldukça tembel olarak yüklenebilir."
#: common/models.py:1349
msgid "Update Check Interval"
-msgstr ""
+msgstr "Güncelleme Denetleme Aralığı"
#: common/models.py:1350
msgid "How often to check for updates (set to zero to disable)"
-msgstr ""
+msgstr "Güncellemeleri şu sıklıkla denetle (etkisizleştirmek için sıfır yapın)"
#: common/models.py:1356
msgid "Automatic Backup"
-msgstr ""
+msgstr "Otomatik Yedekleme"
#: common/models.py:1357
msgid "Enable automatic backup of database and media files"
-msgstr ""
+msgstr "Veritabanı ve ortam dosyalarını otomatik yedeklemeyi etkinleştir"
#: common/models.py:1362
msgid "Auto Backup Interval"
-msgstr ""
+msgstr "Otomatik Yedekleme Aralığı"
#: common/models.py:1363
msgid "Specify number of days between automated backup events"
-msgstr ""
+msgstr "Otomatik yedekleme olayları arasındaki gün sayısını belirtin"
#: common/models.py:1369
msgid "Task Deletion Interval"
-msgstr ""
+msgstr "Görev Silme Aralığı"
#: common/models.py:1371
msgid "Background task results will be deleted after specified number of days"
-msgstr ""
+msgstr "Arkaplan görev sonuçları belirtilen gün sayısı kadar sonra silinecektir"
#: common/models.py:1378
msgid "Error Log Deletion Interval"
-msgstr ""
+msgstr "Hata Günlüğü Silme Aralığı"
#: common/models.py:1380
msgid "Error logs will be deleted after specified number of days"
-msgstr ""
+msgstr "Hata günlükleri belirtilen gün sayısı kadar sonra silinecektir"
#: common/models.py:1387
msgid "Notification Deletion Interval"
-msgstr ""
+msgstr "Bildirim Silme Aralığı"
#: common/models.py:1389
msgid "User notifications will be deleted after specified number of days"
-msgstr ""
+msgstr "Kullanıcı bildirimleri belirtilen gün sayısı kadar sonra silinecektir"
#: common/models.py:1396 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
@@ -2467,63 +2464,63 @@ msgstr "Barkod Desteği"
#: common/models.py:1397
msgid "Enable barcode scanner support in the web interface"
-msgstr ""
+msgstr "Web arayüzünde barkod tarayıcı desteğini etkinleştir"
#: common/models.py:1402
msgid "Barcode Input Delay"
-msgstr ""
+msgstr "Barkod Girdi Gecikmesi"
#: common/models.py:1403
msgid "Barcode input processing delay time"
-msgstr ""
+msgstr "Barkod girdi işleme gecikme süresi"
#: common/models.py:1409
msgid "Barcode Webcam Support"
-msgstr ""
+msgstr "Barkod Web Kamerası Desteği"
#: common/models.py:1410
msgid "Allow barcode scanning via webcam in browser"
-msgstr ""
+msgstr "Tarayıcıda web kamerası aracılığıyla barkod taramaya izin ver"
#: common/models.py:1415
msgid "Barcode Show Data"
-msgstr ""
+msgstr "Barkod Verisini Göster"
#: common/models.py:1416
msgid "Display barcode data in browser as text"
-msgstr ""
+msgstr "Barkod verisini tarayıcıda metin olarak görüntüle"
#: common/models.py:1421
msgid "Barcode Generation Plugin"
-msgstr ""
+msgstr "Barkod Üreteci Eklentisi"
#: common/models.py:1422
msgid "Plugin to use for internal barcode data generation"
-msgstr ""
+msgstr "Dahili barkod üretimi için kullanılacak eklenti"
#: common/models.py:1427
msgid "Part Revisions"
-msgstr ""
+msgstr "Parça Revizyonları"
#: common/models.py:1428
msgid "Enable revision field for Part"
-msgstr ""
+msgstr "Parça için revizyon alanını etkinleştir"
#: common/models.py:1433
msgid "Assembly Revision Only"
-msgstr ""
+msgstr "Yalnızca Montaj Revizyonu"
#: common/models.py:1434
msgid "Only allow revisions for assembly parts"
-msgstr ""
+msgstr "Yalnızca montaj parçaları için revizyona izin ver"
#: common/models.py:1439
msgid "Allow Deletion from Assembly"
-msgstr ""
+msgstr "Montajdan Silmeye İzin Ver"
#: common/models.py:1440
msgid "Allow deletion of parts which are used in an assembly"
-msgstr ""
+msgstr "Bir montajda kullanılan parçaları silmeye izin ver"
#: common/models.py:1445
msgid "IPN Regex"
@@ -2551,27 +2548,27 @@ msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver"
#: common/models.py:1461
msgid "Copy Part BOM Data"
-msgstr ""
+msgstr "Parça ML Verisini Kopyala"
#: common/models.py:1462
msgid "Copy BOM data by default when duplicating a part"
-msgstr ""
+msgstr "Bir parçayo çoğaltırken varsayılan olarak ML verisini kopyala"
#: common/models.py:1467
msgid "Copy Part Parameter Data"
-msgstr ""
+msgstr "Parça Parametre Verisini Kopyala"
#: common/models.py:1468
msgid "Copy parameter data by default when duplicating a part"
-msgstr ""
+msgstr "Bir parçayı çoğaltırken varsayılan olarak parametre verisini kopyala"
#: common/models.py:1473
msgid "Copy Part Test Data"
-msgstr ""
+msgstr "Parça Test Verisini Kopyala"
#: common/models.py:1474
msgid "Copy test data by default when duplicating a part"
-msgstr ""
+msgstr "Bir parçayı çoğaltırken varsayılan olarak test verisini kopyala"
#: common/models.py:1479
msgid "Copy Category Parameter Templates"
@@ -2581,9 +2578,9 @@ msgstr "Kategori Paremetre Sablonu Kopyala"
msgid "Copy category parameter templates when creating a part"
msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,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:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr "Bileşen"
@@ -2640,11 +2637,11 @@ msgstr "Parçalar varsayılan olarak sanaldır"
#: common/models.py:1527
msgid "Show Import in Views"
-msgstr ""
+msgstr "Görünümlerde İçe Aktarmayı Göster"
#: common/models.py:1528
msgid "Display the import wizard in some part views"
-msgstr ""
+msgstr "Bazı parça görünümlerinde içe aktarma sihirbazını görüntüle"
#: common/models.py:1533
msgid "Show related parts"
@@ -2652,159 +2649,159 @@ msgstr "İlgili parçaları göster"
#: common/models.py:1534
msgid "Display related parts for a part"
-msgstr ""
+msgstr "Bir parça için ilgili parçaları göster"
#: common/models.py:1539
msgid "Initial Stock Data"
-msgstr ""
+msgstr "Başlangıç Stok Verisi"
#: common/models.py:1540
msgid "Allow creation of initial stock when adding a new part"
-msgstr ""
+msgstr "Yeni bir parça eklerken başlangıç stoku oluşturmaya izin ver"
#: common/models.py:1545 templates/js/translated/part.js:108
msgid "Initial Supplier Data"
-msgstr ""
+msgstr "Başlangıç Sağlayıcı Verisi"
#: common/models.py:1547
msgid "Allow creation of initial supplier data when adding a new part"
-msgstr ""
+msgstr "Yeni bir parça oluştururken başlangıç sağlayıcı verisi oluşturmaya izin ver"
#: common/models.py:1553
msgid "Part Name Display Format"
-msgstr ""
+msgstr "Parça Adı Görüntüleme Biçimi"
#: common/models.py:1554
msgid "Format to display the part name"
-msgstr ""
+msgstr "Parça adını görüntüleme biçimi"
#: common/models.py:1560
msgid "Part Category Default Icon"
-msgstr ""
+msgstr "Parça Sınıfının Varsayılan Simgesi"
#: common/models.py:1561
msgid "Part category default icon (empty means no icon)"
-msgstr ""
+msgstr "Parça sınıfı için varsayılan simge (boş bırakılırsa simge kullanılmaz)"
#: common/models.py:1566
msgid "Enforce Parameter Units"
-msgstr ""
+msgstr "Parametre Birimlerini Zorunlu Kıl"
#: common/models.py:1568
msgid "If units are provided, parameter values must match the specified units"
-msgstr ""
+msgstr "Birimler sağlanırsa, parametre değerleri belirtilen birimlere uymalıdır"
#: common/models.py:1574
msgid "Minimum Pricing Decimal Places"
-msgstr ""
+msgstr "Minimum Fiyatlandırma Ondalık Basamakları"
#: common/models.py:1576
msgid "Minimum number of decimal places to display when rendering pricing data"
-msgstr ""
+msgstr "Fiiyatlandırma verisini oluştururken gösterilecek ondalık basamakların minimum sayısı"
#: common/models.py:1587
msgid "Maximum Pricing Decimal Places"
-msgstr ""
+msgstr "Maksimum Fiyatlandırma Ondalık Basamakları"
#: common/models.py:1589
msgid "Maximum number of decimal places to display when rendering pricing data"
-msgstr ""
+msgstr "Fiiyatlandırma verisini oluştururken gösterilecek ondalık basamakların maksimum sayısı"
#: common/models.py:1600
msgid "Use Supplier Pricing"
-msgstr ""
+msgstr "Sağlayıcı Fiyatlandırmasını Kullan"
#: common/models.py:1602
msgid "Include supplier price breaks in overall pricing calculations"
-msgstr ""
+msgstr "Genel fiyatlandırma hesaplamalarına sağlayıcı fiyat aralıklarını ekle"
#: common/models.py:1608
msgid "Purchase History Override"
-msgstr ""
+msgstr "Satın Alma Geçmişini Geçersiz Kılma"
#: common/models.py:1610
msgid "Historical purchase order pricing overrides supplier price breaks"
-msgstr ""
+msgstr "Geçmiş satınalma siparişi fiyatlandırması, sağlayıcı fiyat aralıklarını geçersiz kılar"
#: common/models.py:1616
msgid "Use Stock Item Pricing"
-msgstr ""
+msgstr "Stok Ögesi Fiyatlandırmasını Kullan"
#: common/models.py:1618
msgid "Use pricing from manually entered stock data for pricing calculations"
-msgstr ""
+msgstr "Fiyatlandırma hesaplamaları için elle girilen stok verisinin fiyatlandırmasını kullan"
#: common/models.py:1624
msgid "Stock Item Pricing Age"
-msgstr ""
+msgstr "Stok Ögesi Fiyatlandırma Yaşı"
#: common/models.py:1626
msgid "Exclude stock items older than this number of days from pricing calculations"
-msgstr ""
+msgstr "Bu gün sayısından daha eski olan stok kalemlerini fiyatlandırma hesaplamalarından hariç tut"
#: common/models.py:1633
msgid "Use Variant Pricing"
-msgstr ""
+msgstr "Türev Fiyatlandırması Kullan"
#: common/models.py:1634
msgid "Include variant pricing in overall pricing calculations"
-msgstr ""
+msgstr "Genel fiyat hesaplamalarına türev fiyatlarını da ekle"
#: common/models.py:1639
msgid "Active Variants Only"
-msgstr ""
+msgstr "Yalnızca Etkin Türevler"
#: common/models.py:1641
msgid "Only use active variant parts for calculating variant pricing"
-msgstr ""
+msgstr "Türev fiyatlandırması için yalnızca etkin türev parçaları kullan"
#: common/models.py:1647
msgid "Pricing Rebuild Interval"
-msgstr ""
+msgstr "Fiyatlandırmayı Yeniden Oluşturma Aralığı"
#: common/models.py:1649
msgid "Number of days before part pricing is automatically updated"
-msgstr ""
+msgstr "Parça fiyatlandrımasının otomatik güncellenmesinden önceki gün sayısı"
#: common/models.py:1656
msgid "Internal Prices"
-msgstr ""
+msgstr "Dahili Fiyatlar"
#: common/models.py:1657
msgid "Enable internal prices for parts"
-msgstr ""
+msgstr "Parçalar için dahili fiyatları etkinleştir"
#: common/models.py:1662
msgid "Internal Price Override"
-msgstr ""
+msgstr "Dahili Fiyat Geçersiz Kılma"
#: common/models.py:1664
msgid "If available, internal prices override price range calculations"
-msgstr ""
+msgstr "Varsa, dahili fiyatlar fiyat aralığı hesaplarını geçersiz kılar"
#: common/models.py:1670
msgid "Enable label printing"
-msgstr ""
+msgstr "Etiket yazdırmayı etkinleştir"
#: common/models.py:1671
msgid "Enable label printing from the web interface"
-msgstr ""
+msgstr "Web arayüzünden etiket yazdırmayı etkinleştir"
#: common/models.py:1676
msgid "Label Image DPI"
-msgstr ""
+msgstr "Etiket Resmi DPI Değeri"
#: common/models.py:1678
msgid "DPI resolution when generating image files to supply to label printing plugins"
-msgstr ""
+msgstr "Resim dosyaları üretirken etiket yazdırma eklentilerine sağlanacak DPI çözünürlüğü"
#: common/models.py:1684
msgid "Enable Reports"
-msgstr ""
+msgstr "Raporları Etkinleştir"
#: common/models.py:1685
msgid "Enable generation of reports"
-msgstr ""
+msgstr "Rapor üretimini etkinleştir"
#: common/models.py:1690 templates/stats.html:25
msgid "Debug Mode"
@@ -2816,14 +2813,14 @@ msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)"
#: common/models.py:1696
msgid "Log Report Errors"
-msgstr ""
+msgstr "Rapor Hatalarını Günlüğe Kaydet"
#: common/models.py:1697
msgid "Log errors which occur when generating reports"
-msgstr ""
+msgstr "Raporlar üretirken oluşan hataları günlüğe kaydet"
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "Sayfa Boyutu"
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr "PDF raporlar için varsayılan sayfa boyutu"
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
-msgstr ""
+msgstr "Küresel Çapta Benzersiz Seri Numaraları"
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
-msgstr ""
+msgstr "Stok ögeleri için seri numaraları küresel çapta benzersiz olmalıdır"
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
-msgstr ""
+msgstr "Seri Numaralarını Otomatik Doldur"
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
-msgstr ""
+msgstr "Seri numaralarını formlarda otomatik doldur"
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
-msgstr ""
+msgstr "Tükenen Stoku Sil"
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
-msgstr ""
+msgstr "Bir stok ögesi tükendiğinde varsayılan davranışı belirler"
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
-msgstr ""
+msgstr "Parti Kodu Şablonu"
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
-msgstr ""
+msgstr "Stok ögelerine varsayılan parti kodlarını üretmek için şablon"
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
-msgstr ""
+msgstr "Stok Sona Erme Tarihi"
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
-msgstr ""
+msgstr "Stokun sona erme işlevselliğini etkinleştir"
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
-msgstr ""
+msgstr "Süresi Dolan Stoku Sat"
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
-msgstr ""
+msgstr "Süresi dolan stok satışına izin ver"
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
-msgstr ""
+msgstr "Stok Eskime Süresi"
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
-msgstr ""
+msgstr "Stok öğelerinin son kullanma tarihi geçmeden eskimiş sayıldığı gün sayısı"
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
-msgstr ""
+msgstr "Yapımın Süresi Geçmiş Stoku"
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
-msgstr ""
+msgstr "Süresi geçmiş stok ile yapıma izin ver"
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
-msgstr ""
+msgstr "Stok Sahipliği Kontrolü"
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin"
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
-msgstr ""
+msgstr "Varsayılan Stok Konumu Simgesi"
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
-msgstr ""
+msgstr "Stok konumu için varsayılan simge (boşsa simge yok demektir)"
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
-msgstr ""
+msgstr "Kurulu Stok Ögelerini Göster"
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
-msgstr ""
+msgstr "Stok tablolarında kurulu stok ögelerini göster"
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
-msgstr ""
+msgstr "Ögelerin kurulumunu yaparken ML'i kontrol et"
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
-msgstr ""
+msgstr "Kurulu stok ögeleri üst parçanın ML'nde mevcut olmalıdır"
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
-msgstr ""
+msgstr "Stok Dışı Aktarıma İzin Ver"
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
-msgstr ""
+msgstr "Stokta olmayan ögelerin stok konumları arasında aktarılmasına izin ver"
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
-msgstr ""
+msgstr "Yapım Siparişi Referans Kalıbı"
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
-msgstr ""
+msgstr "Yapım Siparişi referans alanını üretmek için gerekli kalıp"
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
-msgstr ""
+msgstr "Sorumlu Sahip Gerektir"
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
-msgstr ""
+msgstr "Kullanıcı ayrıntılarını TOA hesabı verisinden otomatik olarak doldur"
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
-msgstr ""
+msgstr "Postayı iki kez gir"
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
-msgstr ""
+msgstr "Hesap oluştururken kullanıcıların postalarını iki kez girmelerini iste"
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
-msgstr ""
+msgstr "Şifreyi iki kez gir"
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
-msgstr ""
+msgstr "Hesap oluştururken kullanıcıların şifrelerini iki kez girmesini iste"
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
-msgstr ""
+msgstr "Alanlara izin ver"
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
-msgstr ""
+msgstr "Belirli alanlara hesap açmayı kısıtla (virgülle ayrılmış, @ ile başlayan)"
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
-msgstr ""
+msgstr "Hesap oluştururken grup"
-#: common/models.py:2049
+#: common/models.py:2035
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 ""
+msgstr "Yeni kullanıcıların kayıt sırasında atanacağı grup. Eğer TOA grup eşitlemesi etkinse, yalnızca ıdP'den hiçbir grup atanamazsa bu grup ayarlanır."
-#: common/models.py:2055
+#: common/models.py:2041
msgid "Enforce MFA"
-msgstr ""
+msgstr "ÇFKD'yi Zorunlu Kıl"
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
+#: common/models.py:2065
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:2071
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:2072
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:2078
+msgid "Enable app integration"
+msgstr ""
+
#: common/models.py:2079
-msgid "Enable plugins to add URL routes"
+msgid "Enable plugins to add apps"
msgstr ""
#: common/models.py:2085
-msgid "Enable navigation integration"
+msgid "Enable schedule integration"
msgstr ""
#: common/models.py:2086
-msgid "Enable plugins to integrate into navigation"
+msgid "Enable plugins to run scheduled tasks"
msgstr ""
#: common/models.py:2092
-msgid "Enable app integration"
+msgid "Enable event integration"
msgstr ""
#: common/models.py:2093
-msgid "Enable plugins to add apps"
+msgid "Enable plugins to respond to internal events"
msgstr ""
#: common/models.py:2099
-msgid "Enable schedule integration"
+msgid "Enable interface integration"
msgstr ""
#: common/models.py:2100
-msgid "Enable plugins to run scheduled tasks"
+msgid "Enable plugins to integrate into the user interface"
msgstr ""
#: common/models.py:2106
-msgid "Enable event integration"
-msgstr ""
-
-#: common/models.py:2107
-msgid "Enable plugins to respond to internal events"
-msgstr ""
-
-#: common/models.py:2113
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr "Formlarda Miktarı Göster"
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Kullanıcı"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr "Fiyat"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr "Bağlantı"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "Resim"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Ek"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Eksik dosya"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Bozuk dış bağlantı"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Eklenecek dosyayı seç"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Yorum"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Dosya adı"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Temel Parça"
@@ -4463,8 +4460,8 @@ msgstr "Parça seçin"
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr "Üretici seçin"
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr "Parametre adı"
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr "Parametre değeri"
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr "Tedarikçi"
msgid "Select supplier"
msgstr "Tedarikçi seçin"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr "Not"
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr "temel maliyet"
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr "çoklu"
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr "Minimum Stok"
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr "Varsayılan Konum"
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr "Parça adı"
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr "Test Adı"
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr "Test Açıklaması"
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr "Etkin"
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr "Gerekli"
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr "Parametre şablon adı benzersiz olmalıdır"
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Parametre Şablonu"
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
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:4327
+#: part/models.py:4314
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:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr "Etiket Yazdır"
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr "Stok işlemleri"
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr "Son Seri Numarası"
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr "Şablon için geçerli bir nesne sağlanmadı"
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr "Dosya Adı Deseni"
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr "Filtreler"
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr "Genişlik [mm]"
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr "Etiket genişliği mm olarak belirtilmeli"
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr "Yükseklik [mm]"
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr "Etiket yüksekliği mm olarak belirtilmeli"
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr "Stok Konumları"
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr "Miktar seri numaları ile eşleşmiyor"
msgid "Serial numbers already exist"
msgstr "Seri numaraları zaten mevcut"
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stok kalemi stokta olmadığı için taşınamaz"
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr "Konuma Tara"
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr "Yazdırma işlemleri"
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr "Stok ayarlama işlemleri"
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr "Stoku seri numarala"
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr "Çeşide çevir"
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Yapım İşi"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr "Konum ayarlanmadı"
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr "Stok kalemi tüm gerekli testleri geçmedi"
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erdi"
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erecek"
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr "Uyarı"
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr "Bu işlem kolayca geri alınamaz"
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr "Dosya Ekle"
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po
index e56a287be5cb..2330612e1e28 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"Language: uk_UA\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Китайська (Традиційна)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] Увійти в додаток"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr ""
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "Ім`я"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "Прізвище"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr "Адреса електронної пошти користувача"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr "Персонал"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr ""
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr ""
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr ""
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr ""
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr ""
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr ""
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr ""
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr ""
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr ""
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr ""
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po
index 7b4e7fd6939e..484bbffde7ca 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-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "Tiếng Trung (Phồn thể)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] Đăng nhập vào ứng dụng"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "Tên trùng lặp không thể tồn tại trong cùng cấp thư mục"
msgid "Invalid choice"
msgstr "Lựa chọn sai"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "Tên"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "Lỗi máy chủ"
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:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "Phải là một số hợp lệ"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "Chọn tiền tệ trong các tùy chọn đang có"
msgid "Username"
msgstr "Tên người dùng"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "Tên"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "Họ"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr "Hoạt động"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "Bạn không có quyền thay đổi vai trò của người dùng này."
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "Chỉ có siêu người dùng là có thể tạo người dùng mới"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "Tài khoản của bạn đã được tạo."
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "Xin hãy sử dụng chức năng tạo lại mật khẩu để đăng nhập"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "Chào mừng đến với InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "Giá trị không hợp lệ"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "Tập tin dữ liệu"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "Chọn tệp tin để tải lên"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "Loại tệp tin không được hỗ trợ"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "Tệp tin quá lớn"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "Không tìm thấy cột nào trong tệp tin"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "Không tìm thấy dòng nào trong tệp tin"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "Chưa có dữ liệu"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "Chưa cung cấp cột dữ liệu"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "Thiếu cột bắt buộc: '{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "Nhân bản cột: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "Hình ảnh từ xa"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "URL của tệp hình ảnh bên ngoài"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
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:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "Nhân công chạy ngầm kiểm tra thất bại"
@@ -759,7 +759,7 @@ msgstr ""
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:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "Bạn dựng phải được hủy bỏ trước khi có thể xóa đư
msgid "Consumable"
msgstr "Vật tư tiêu hao"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "Tuỳ chọn"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr "Đã cấp phát"
msgid "Available"
msgstr "Có sẵn"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "Có sẵn"
msgid "Build Order"
msgstr "Tạo đơn hàng"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr "Tham chiếu đơn đặt bản dựng"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "Đơn đặt bản dựng với bản dựng này đã được phân b
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr "Người dùng hoặc nhóm có trách nhiệm với đơn đặt bản
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "Liên kết bên ngoài"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "Liên kết đến URL bên ngoài"
@@ -1110,7 +1110,7 @@ msgstr "Đơn đặt bản dựng {build} đã được hoàn thành"
msgid "A build order has been completed"
msgstr "Một đơn đặt bản dựng đã được hoàn thành"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "Không có đầu ra bản dựng đã được chỉ ra"
@@ -1122,37 +1122,37 @@ msgstr "Đầu ra bản dựng đã được hoàn thiện"
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:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "Số lượng phải lớn hơn 0"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
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:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr "Dựng đối tượng"
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr "Dựng đối tượng"
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr "Dựng đối tượng"
msgid "Quantity"
msgstr "Số lượng"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr "Yêu cầu số lượng để dựng đơn đặt"
-#: build/models.py:1586
+#: build/models.py:1597
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:1595
+#: build/models.py:1606
#, 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:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "Kho hàng đã bị phân bổ quá đà"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
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:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "Số lượng phải là 1 cho kho sê ri"
-#: build/models.py:1676
+#: build/models.py:1687
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:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr "Hàng trong kho đã chọn không phù hợp với đường BOM"
msgid "Stock Item"
msgstr "Kho hàng"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "Kho hàng gốc"
-#: build/models.py:1762
+#: build/models.py:1776
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:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "Cài đặt vào"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "Kho hàng đích"
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr "Tên sản phẩm"
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "Nhập vào số sêri cho đầu ra bản dựng"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr "Vị trí cho đầu ra bản dựng hoàn thiện"
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr "Đầu ra bản dựng phải được xác định cho việc phân s
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Đầu ra bản dựng không thể chỉ định cho việc phân sản phẩm chưa được theo dõi"
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr "Hàng hóa phân bổ phải được cung cấp"
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr "Đóng gói"
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr "ID sản phẩm"
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr "IPN sản phẩm"
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr "Số sê-ri"
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr "Số lượng sẵn có"
@@ -1667,13 +1667,13 @@ msgstr "Có thể theo dõi"
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046
#: templates/js/translated/build.js:2714
msgid "Allow Variants"
msgstr "Cho phép biến thể"
-#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr "Mục BOM"
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr "Bật đơn hàng"
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr "Đang sản xuất"
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr "Đã hủy"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "Hoàn thành"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr "Xóa bản dựng"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr "Đầu ra hoàn thiện"
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr "Sản phẩm đã phân bổ"
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr "Đầu ra chưa hoàn thiện"
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr "Mức độ thường xuyên để cập nhật tỉ giá hối đoái (
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "ngày"
@@ -2581,9 +2578,9 @@ msgstr "Sao chéo mẫu tham số danh mục"
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:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,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:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr "Thành phần"
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "Khổ giấy"
@@ -2832,914 +2829,914 @@ 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:1708
-msgid "Enable Test Reports"
-msgstr "Bật báo cáo kiểm thử"
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr "Cho phép tạo báo cáo kiểm thử"
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr "Đính kèm báo cáo kiểm thử"
-
-#: common/models.py:1716
-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:1722
msgid "Globally Unique Serials"
msgstr "Sê ri toàn cục duy nhất"
-#: common/models.py:1723
+#: common/models.py:1709
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:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr "Tự động điền số sê ri"
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr "Tự động điền số sê ri vào biểu mẫu"
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr "Xóa kho đã hết hàng"
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr "Mẫu sinh mã theo lô"
-#: common/models.py:1744
+#: common/models.py:1730
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:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr "Quá hạn trong kho"
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr "Bật chức năng quá hạn tồn kho"
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr "Bán kho quá hạn"
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr "Cho phép bán hàng kho quá hạn"
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr "Thời gian hàng cũ trong kho"
-#: common/models.py:1763
+#: common/models.py:1749
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:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr "Dựng kho quá hạn"
-#: common/models.py:1771
+#: common/models.py:1757
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:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr "Kiểm soát sở hữu kho"
-#: common/models.py:1777
+#: common/models.py:1763
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:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr "Biểu tượng địa điểm kho mặc định"
-#: common/models.py:1783
+#: common/models.py:1769
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:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr "Hiển thị hàng hóa đã lắp đặt"
-#: common/models.py:1789
+#: common/models.py:1775
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:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr "Mã tham chiếu đơn đặt bản dựng"
-#: common/models.py:1812
+#: common/models.py:1798
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:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr "Bật đơn hàng trả lại"
-#: common/models.py:1861
+#: common/models.py:1847
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:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr "Mẫu tham chiếu đơn hàng trả lại"
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr "Sửa đơn hàng trả lại đã hoàn thành"
-#: common/models.py:1882
+#: common/models.py:1868
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:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr "Mẫu tham chiếu đơn đặt hàng"
-#: common/models.py:1890
+#: common/models.py:1876
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:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr "Vận chuyển mặc định đơn đặt hàng"
-#: common/models.py:1903
+#: common/models.py:1889
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:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr "Sửa đơn đặt hàng đã hoàn thành"
-#: common/models.py:1910
+#: common/models.py:1896
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:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr "Mẫu tham chiếu đơn đặt mua"
-#: common/models.py:1926
+#: common/models.py:1912
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:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr "Sửa đơn đặt mua đã hoàn thành"
-#: common/models.py:1940
+#: common/models.py:1926
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:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr "Tự động hoàn thành đơn đặt mua"
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr "Bật quên mật khẩu"
-#: common/models.py:1956
+#: common/models.py:1942
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:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr "Bật đăng ký"
-#: common/models.py:1962
+#: common/models.py:1948
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:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr "Bật SSO"
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr "Cho phép SSO tại trang đăng nhập"
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr "Bật đăng ký SSO"
-#: common/models.py:1975
+#: common/models.py:1961
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:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "Yêu cầu email"
-#: common/models.py:2014
+#: common/models.py:2000
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:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr "Người dùng tự động điền SSO"
-#: common/models.py:2021
+#: common/models.py:2007
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:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr "Thư 2 lần"
-#: common/models.py:2028
+#: common/models.py:2014
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:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr "Mật khẩu 2 lần"
-#: common/models.py:2034
+#: common/models.py:2020
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:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr "Các tên miền được phép"
-#: common/models.py:2041
+#: common/models.py:2027
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:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr "Nhóm khi đăng ký"
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr "Bắt buộc MFA"
-#: common/models.py:2056
+#: common/models.py:2042
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:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr "Kiểm tra phần mở rộng khi khởi động"
-#: common/models.py:2063
+#: common/models.py:2049
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:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr "Kiểm tra cập nhật plugin"
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr "Bật tích hợp URL"
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr "Bật phần mở rộng để thêm định tuyến URL"
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr "Bật tích hợp điều hướng"
-#: common/models.py:2086
+#: common/models.py:2072
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:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr "Bật tích hợp ứng dụng"
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr "Bật phần mở rộng để thêm ứng dụng"
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr "Cho phép tích hợp lập lịch"
-#: common/models.py:2100
+#: common/models.py:2086
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:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr "Bật tích hợp nguồn cấp sự kiện"
-#: common/models.py:2107
+#: common/models.py:2093
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:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr "Bật mã dự án"
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr "Bật mã dự án để theo dõi dự án"
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr "Chức năng kiểm kê"
-#: common/models.py:2121
+#: common/models.py:2114
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:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr "Ngoại trừ vị trí bên ngoài"
-#: common/models.py:2129
+#: common/models.py:2122
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:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr "Giai đoạn kiểm kê tự động"
-#: common/models.py:2137
+#: common/models.py:2130
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:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr "Khoảng thời gian xóa báo cáo"
-#: common/models.py:2145
+#: common/models.py:2138
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:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr "Hiển thị tên đầy đủ của người dùng"
-#: common/models.py:2153
+#: common/models.py:2146
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:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
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:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr "Ẩn sản phẩm ngừng hoạt động"
-#: common/models.py:2216
+#: common/models.py:2217
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:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr "Hiện sản phẩm đã đăng ký"
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr "Hiện sản phẩm đã đăng ký trên trang chủ"
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr "Hiện danh mục đã đăng ký"
-#: common/models.py:2229
+#: common/models.py:2230
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:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr "Hiển thị nguyên liệu mới nhất"
-#: common/models.py:2235
+#: common/models.py:2236
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:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
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:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr "Hiện thay đổi kho hàng gần đây"
-#: common/models.py:2247
+#: common/models.py:2248
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:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr "Hiển thị hàng còn ít"
-#: common/models.py:2253
+#: common/models.py:2254
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:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr "Hiển thị hết hàng"
-#: common/models.py:2259
+#: common/models.py:2260
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:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr "Hiển thị hàng cần thiết"
-#: common/models.py:2265
+#: common/models.py:2266
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:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr "Bán kho quá hạn"
-#: common/models.py:2271
+#: common/models.py:2272
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:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr "Hiện kho hàng ế"
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr "Hiện hàng trong kho bị ế trên trang chủ"
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr "Hiện bản dựng chờ xử lý"
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr "Hiện bản dựng chờ xử lý trên trang chủ"
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr "Hiện bản dựng quá hạn"
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr "Hiện bản dựng quá hạn trên trang chủ"
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr "Hiện PO nổi bật"
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr "Hiện PO nổi bật trên trang chủ"
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr "Hiện PO quá hạn"
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr "Hiện đơn mua hàng quá hạn trên trang chủ"
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr "Hiện đơn hàng vận chuyển nổi bật"
-#: common/models.py:2307
+#: common/models.py:2308
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:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr "Hiện đơn vận chuyển quá hạn"
-#: common/models.py:2313
+#: common/models.py:2314
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:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr "Hiện đơn vận chuyển chờ xử lý"
-#: common/models.py:2319
+#: common/models.py:2320
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:2324
+#: common/models.py:2325
msgid "Show News"
msgstr "Hiện tin tức"
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr "Hiện tin tức trên trang chủ"
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr "Hiển thị nhãn cùng dòng"
-#: common/models.py:2332
+#: common/models.py:2333
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:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr "Máy in tem nhãn mặc định"
-#: common/models.py:2340
+#: common/models.py:2341
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:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr "Hiển thị báo cáo cùng hàng"
-#: common/models.py:2348
+#: common/models.py:2349
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:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr "Tìm sản phẩm"
-#: common/models.py:2355
+#: common/models.py:2356
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:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr "Tìm sản phẩm nhà cung cấp"
-#: common/models.py:2361
+#: common/models.py:2362
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:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr "Tìm sản phẩm nhà sản xuất"
-#: common/models.py:2367
+#: common/models.py:2368
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:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr "Ẩn sản phẩm ngừng hoạt động"
-#: common/models.py:2373
+#: common/models.py:2374
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:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr "Tìm kiếm danh mục"
-#: common/models.py:2379
+#: common/models.py:2380
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:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr "Tìm kiếm kho"
-#: common/models.py:2385
+#: common/models.py:2386
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:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr "Ẩn hàng hóa trong kho không có sẵn"
-#: common/models.py:2392
+#: common/models.py:2393
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:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr "Tìm kiếm vị trí"
-#: common/models.py:2399
+#: common/models.py:2400
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:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr "Tìm kiếm công ty"
-#: common/models.py:2405
+#: common/models.py:2406
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:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr "Tìm kiếm đặt hàng xây dựng"
-#: common/models.py:2411
+#: common/models.py:2412
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:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr "Tìm kiếm đơn đặt mua"
-#: common/models.py:2417
+#: common/models.py:2418
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:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr "Loại trừ đơn đặt mua không hoạt động"
-#: common/models.py:2424
+#: common/models.py:2425
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:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr "Tìm đơn đặt hàng người mua"
-#: common/models.py:2431
+#: common/models.py:2432
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:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr "Loại trừ đơn đặt hàng người mua không hoạt động"
-#: common/models.py:2438
+#: common/models.py:2439
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:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr "Tìm kiếm đơn hàng trả lại"
-#: common/models.py:2445
+#: common/models.py:2446
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:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr "Loại trừ đơn hàng trả lại không hoạt động"
-#: common/models.py:2452
+#: common/models.py:2453
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:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr "Kết quả xem trước tìm kiếm"
-#: common/models.py:2460
+#: common/models.py:2461
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:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr "Tìm kiếm biểu thức"
-#: common/models.py:2467
+#: common/models.py:2468
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:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr "Tìm phù hợp toàn bộ chữ"
-#: common/models.py:2473
+#: common/models.py:2474
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:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr "Hiện số lượng trong biểu mẫu"
-#: common/models.py:2479
+#: common/models.py:2480
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:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr "Phím escape để đóng mẫu biểu"
-#: common/models.py:2485
+#: common/models.py:2486
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:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr "Cố định điều hướng"
-#: common/models.py:2491
+#: common/models.py:2492
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:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr "Định dạng ngày"
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr "Định dạng ưa chuộng khi hiển thị ngày"
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "Lập lịch sản phẩm"
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr "Hiển thị thông tin lịch sản phẩm"
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "Kiểm kê sản phẩm"
-#: common/models.py:2518
+#: common/models.py:2519
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:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr "Độ dài chuỗi trong bảng"
-#: common/models.py:2526
+#: common/models.py:2527
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:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr "Nhận báo cáo lỗi"
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr "Nhận thông báo khi có lỗi hệ thống"
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "Người dùng"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr "Số lượng giá phá vỡ"
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr "Số lượng giá phá vỡ"
msgid "Price"
msgstr "Giá"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr "Đơn vị giá theo số lượng cụ thể"
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr "Đầu mối"
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr "Đầu mối tại điểm webhook được nhận"
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr "Tên của webhook này"
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr "Webhook có hoạt động không"
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr "Chữ ký số"
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr "Chữ ký số để truy cập"
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr "Bí mật"
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr "Mã bí mật dùng chung cho HMAC"
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr "Mã Tin nhắn"
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr "Định danh duy nhất cho tin nhắn này"
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr "Máy chủ"
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr "Mãy chủ từ tin nhắn này đã được nhận"
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr "Đầu mục"
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr "Đầu mục tin nhắn"
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr "Thân"
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr "Thân tin nhắn này"
-#: common/models.py:2880
+#: common/models.py:2881
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:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr "Làm việc vào"
-#: common/models.py:2886
+#: common/models.py:2887
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:3012
+#: common/models.py:3013
msgid "Id"
msgstr "Mã"
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "Tiêu đề"
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr "Tiêu đề"
msgid "Link"
msgstr "Liên kết"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr "Đã công bố"
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr "Tóm tắt"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr "Đọc"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr "Tin này đã được đọc?"
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "Hình ảnh"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr "Tệp ảnh"
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
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:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr "Tên đơn vị"
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "Biểu tượng"
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr "Biểu tượng đơn vị tùy chọn"
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr "Định nghĩa"
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr "Định nghĩa đơn vị"
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "Đính kèm"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "Tập tin bị thiếu"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "Thiếu liên kết bên ngoài"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "Chọn file đính kèm"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "Bình luận"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr "Khóa"
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr "Hàng đã nhận theo đơn hàng trả lại"
msgid "Error raised by plugin"
msgstr "Lỗi được thông báo bởi phần mở rộng"
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr "Đang chạy"
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr "Công việc chờ xử lý"
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr "Tác vụ theo lịch"
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr "Tác vụ thất bại"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr "ID tác vụ"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr "ID tác vụ duy nhất"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr "Khoá"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr "Thời gian khóa"
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr "Tên công việc"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr "Chức năng"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr "Tên chức năng"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr "Đối số"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr "Đối số công việc"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr "Đối số từ khóa"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr "Đối số từ khóa công việc"
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "Tên tập tin"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr "Liên kết thông tin địa chỉ (bên ngoài)"
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr "Sản phẩm nhà sản xuất"
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "Sản phẩm cơ bản"
@@ -4463,8 +4460,8 @@ msgstr "Chọn sản phẩm"
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr "Chọn nhà sản xuất"
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr "Tên tham số"
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr "Giá trị tham số"
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr "Đơn vị tham số"
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr "Sản phẩm nhà sản xuất đã liên kết phải tham chiếu vớ
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr "Nhà cung cấp"
msgid "Select supplier"
msgstr "Chọn nhà cung cấp"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr "Đơn vị quản lý kho nhà cung cấp"
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr "Mô tả sản phẩm nhà cung cấp"
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr "Mô tả sản phẩm nhà cung cấp"
msgid "Note"
msgstr "Ghi chú"
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr "chi phí cơ sở"
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Thu phí tối thiểu (vd: phí kho bãi)"
@@ -4629,7 +4626,7 @@ msgstr "Số lượng gói"
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:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr "nhiều"
@@ -4661,7 +4658,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:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr "Xóa ảnh"
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ 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:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ 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:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr "Dữ liệu"
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr "Số mục đã nhận"
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr "Giá mua"
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr "Người dùng đã kiểm tra vận chuyển này"
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr "Vận chuyển"
@@ -5982,7 +5979,7 @@ msgstr "Mục dòng"
msgid "Line item does not match purchase order"
msgstr "Mục dòng không phù hợp với đơn đặt mua"
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr "Chọn vị trí đích cho hàng hóa đã nhận"
@@ -6019,7 +6016,7 @@ msgstr "Mã vạch đã được dùng"
msgid "An integer quantity must be provided for trackable parts"
msgstr "Cần điền số nguyên cho sản phẩm có thể theo dõi"
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr "Dòng hàng hóa phải được cung cấp"
@@ -6051,39 +6048,39 @@ msgstr "Số lượng phải là số dương"
msgid "Enter serial numbers to allocate"
msgstr "Nhập số sê ri để phân bổ"
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr "Vận đơn đã được chuyển đi"
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr "Vận đơn không được gắn với đơn đặt này"
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr "Không tìm thấy số sê ri sau đây"
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
-msgstr "Những số sê ri sau đây đã được phân bổ"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
+msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr "Dòng riêng biệt đơn hàng trả lại"
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr "Line item không phù hợp với đơn hàng trả lại"
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr "Line item đã nhận được"
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr "Hàng hóa chỉ có thể được nhận theo đơn hàng đang trong tiến trình"
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr "Tiền tệ giá đồng hạng"
@@ -6510,7 +6507,7 @@ 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:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,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:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr "Tên danh mục"
@@ -6562,18 +6559,18 @@ msgstr "Kho tối thiểu"
msgid "Used In"
msgstr "Sử dụng trong"
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr "Đang dựng"
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr "Chi phí tối thiểu"
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr "Chi phí tối đa"
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr "Đưỡng dẫn danh mục"
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr "IPN cha"
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "Giá thấp nhất"
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr "Điểm bán mặc định"
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "Tổng số lượng"
@@ -6755,7 +6752,7 @@ 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:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 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"
@@ -6878,7 +6875,7 @@ msgstr "Sản phẩm với Tên, IPN và Duyệt lại đã tồn tại."
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:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr "Tên sản phẩm"
@@ -6906,7 +6903,7 @@ msgstr "Từ khóa sản phẩm để cải thiện sự hiện diện trong k
msgid "Part category"
msgstr "Danh mục sản phẩm"
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr "Số phiên bản hoặc bản duyệt lại sản phẩm"
@@ -7012,164 +7009,164 @@ 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:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr "Kiểm kê cuối cùng"
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr "Bán nhiều"
-#: part/models.py:3128
+#: part/models.py:3115
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:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr "Chi phí BOM tối thiểu"
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr "Chi phí thành phần sản phẩm tối thiểu"
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr "Chi phí BOM tối đa"
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr "Chi phí thành phần sản phẩm tối đa"
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr "Chi phí mua vào tối thiểu"
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr "Chi phí mua vào tối thiểu trong lịch sử"
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr "Chi phí mua tối đa"
-#: part/models.py:3166
+#: part/models.py:3153
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:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr "Giá nội bộ tối thiểu"
-#: part/models.py:3173
+#: part/models.py:3160
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:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr "Giá nội bộ tối đa"
-#: part/models.py:3180
+#: part/models.py:3167
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:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr "Giá nhà cung ứng tối thiểu"
-#: part/models.py:3187
+#: part/models.py:3174
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:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr "Giá nhà cung ứng tối đa"
-#: part/models.py:3194
+#: part/models.py:3181
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:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr "Giá trị biến thể tối thiểu"
-#: part/models.py:3201
+#: part/models.py:3188
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:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr "Chi phí biến thể tối đa"
-#: part/models.py:3208
+#: part/models.py:3195
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:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr "Ghi đề chi phí tối thiểu"
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr "Ghi đề chi phí tối đa"
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr "Chi phí tối thiểu tính toán tổng thể"
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr "Chi phí tối đa tính toán tổng thể"
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr "Giá bán thấp nhất"
-#: part/models.py:3243
+#: part/models.py:3230
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:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr "Giá bán cao nhất"
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr "Giá bán cao nhất dựa trên phá giá"
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr "Chi phí bán hàng tối thiểu"
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr "Giá bán hàng tối thiểu trong lịch sử"
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr "Giá bán hàng tối đa"
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr "Giá bán hàng tối đa trong lịch sử"
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr "Sản phẩm dành cho kiểm kê"
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr "Tổng số hàng"
-#: part/models.py:3289
+#: part/models.py:3276
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:3297
+#: part/models.py:3284
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:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr "Tống số kho tại thời điểm kiểm kê"
msgid "Date"
msgstr "Ngày"
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr "Kiểm kê đã thực hiện"
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr "Ghi chú bổ sung"
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr "Người dùng đã thực hiện đợt kiểm kê này"
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr "Chi phí kho tối thiểu"
-#: part/models.py:3327
+#: part/models.py:3314
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:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr "Chi phí kho tối đa"
-#: part/models.py:3334
+#: part/models.py:3321
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:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr "Báo cáo"
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr "Tệp báo cáo kiểm kê (được sinh nội bộ)"
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr "Bộ đếm sản phẩm"
-#: part/models.py:3397
+#: part/models.py:3384
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:3407
+#: part/models.py:3394
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:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr "Lựa chọn phải duy nhất"
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr "Tên kiểm thử"
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr "Nhập tên cho kiểm thử"
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr "Mô tả kiểm thử"
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr "Nhập mô tả cho kiểm thử này"
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr "Đã bật"
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr "Bắt buộc"
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr "Kiểm thử này bắt buộc phải đạt?"
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr "Giá trị bắt buộc"
-#: part/models.py:3647
+#: part/models.py:3634
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:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr "Yêu cầu đính kèm"
-#: part/models.py:3654
+#: part/models.py:3641
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:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr "Lựa chọn"
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr "Tham số hộp kiểm tra không thể có đơn vị"
-#: part/models.py:3725
+#: part/models.py:3712
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:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr "Tên tham số mẫu phải là duy nhất"
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr "Tên tham số"
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr "Đơn vị vật lý cho tham số này"
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr "Mô tả tham số"
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr "Ô lựa chọn"
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr "Tham số này có phải là hộp kiểm tra?"
-#: part/models.py:3805
+#: part/models.py:3792
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:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr "Lựa chọn sai cho giá trị tham số"
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr "Sản phẩm cha"
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "Mẫu tham số"
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr "Giá trị tham số"
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "Giá trị mặc định"
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr "Giá trị tham số mặc định"
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr "Tên hoặc mã sản phẩm"
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr "Giá trị mã sản phẩm duy nhất"
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr "Giá trị IPN sản phẩm"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr "Cấp độ"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr "Cấp độ BOM"
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr "Chọn sản phẩm cha"
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr "Sản phẩm phụ"
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr "Chọn sản phẩm được dùng trong BOM"
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr "Số lượng BOM cho mục BOM này"
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr "Mục BOM này là tùy chọn"
-#: part/models.py:4279
+#: part/models.py:4266
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:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Dư thừa"
-#: part/models.py:4287
+#: part/models.py:4274
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:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr "Tham chiếu mục BOM"
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr "Ghi chú mục BOM"
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr "Giá trị tổng kiểm"
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr "Giá trị tổng kiểm dòng BOM"
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr "Đã xác minh"
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr "Mục BOM này là hợp lệ"
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr "Nhận thừa hưởng"
-#: part/models.py:4321
+#: part/models.py:4308
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:4327
+#: part/models.py:4314
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:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
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:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr "Sản phẩm phụ phải được chỉ định"
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr "Sảm phẩm thay thế mục BOM"
-#: part/models.py:4582
+#: part/models.py:4575
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:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr "Hàng hóa BOM cha"
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr "Sản phẩm thay thế"
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr "Sản phẩm 1"
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr "Sản phẩm 2"
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr "Chọn sản phẩm liên quan"
-#: part/models.py:4647
+#: part/models.py:4640
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:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr "Đã tồn tại mối quan hệ trùng lặp"
@@ -7571,326 +7568,326 @@ msgstr "Loại tiền mua hàng của hàng hóa này"
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr "Chưa chọn sản phẩm"
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr "Chọn danh mục"
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr "Sản phẩm gốc"
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr "Chọn sản phẩm gốc để nhân bản"
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr "Sao chép ảnh"
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr "Sao chép hình ảnh từ sản phẩm gốc"
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr "Sao chép BOM"
-#: part/serializers.py:493
+#: part/serializers.py:491
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:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr "Sao chép thông số"
-#: part/serializers.py:500
+#: part/serializers.py:498
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:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr "Sao chép ghi chú"
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr "Sao chép ghi chú từ sản phẩm gốc"
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr "Số liệu tồn kho ban đầu"
-#: part/serializers.py:527
+#: part/serializers.py:525
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:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr "Vị trí kho ban đầu"
-#: part/serializers.py:535
+#: part/serializers.py:533
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:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr "Chọn nhà cung cấp (hoặc để trống để bỏ qua)"
-#: part/serializers.py:568
+#: part/serializers.py:566
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:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr "Mã số nhà sản xuất"
-#: part/serializers.py:585
+#: part/serializers.py:583
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:594
+#: part/serializers.py:592
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:605
+#: part/serializers.py:603
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:612
+#: part/serializers.py:610
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:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr "Nhân bản sản phẩm"
-#: part/serializers.py:963
+#: part/serializers.py:961
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:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr "Số liệu kho ban đầu"
-#: part/serializers.py:970
+#: part/serializers.py:968
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:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr "Thông tin nhà cung cấp"
-#: part/serializers.py:977
+#: part/serializers.py:975
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:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr "Sao chép thông số nhóm hàng"
-#: part/serializers.py:986
+#: part/serializers.py:984
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:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr "Ảnh hiện có"
-#: part/serializers.py:992
+#: part/serializers.py:990
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:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr "Tệp hình ảnh không tồn tại"
-#: part/serializers.py:1215
+#: part/serializers.py:1213
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:1225
+#: part/serializers.py:1223
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:1235
+#: part/serializers.py:1233
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:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr "Ngoại trừ kho bên ngoài"
-#: part/serializers.py:1242
+#: part/serializers.py:1240
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:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr "Tạo báo cáo"
-#: part/serializers.py:1248
+#: part/serializers.py:1246
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:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr "Cập nhật sản phẩm"
-#: part/serializers.py:1254
+#: part/serializers.py:1252
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:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr "Chức năng kiểm kê chưa được bật"
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr "Giá trị tính toán ghi đè cho giá tối thiểu"
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr "Tiền tế giá tối thiểu"
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr "Giá trị tính toán ghi đè cho giá tối đa"
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr "Tiền tế giá tối đa"
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr "Cập nhật"
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr "Cập nhật giá cho sản phẩm này"
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, 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:1450
+#: part/serializers.py:1448
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:1453
+#: part/serializers.py:1451
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:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr "Có thể dựng"
-#: part/serializers.py:1858
+#: part/serializers.py:1856
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:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr "Xóa dữ liệu đã tồn tại"
-#: part/serializers.py:1867
+#: part/serializers.py:1865
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:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr "Bao gồm thừa hưởng"
-#: part/serializers.py:1873
+#: part/serializers.py:1871
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:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr "Bỏ qua dòng không hợp lệ"
-#: part/serializers.py:1879
+#: part/serializers.py:1877
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:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr "Sao chép sản phẩm thay thế"
-#: part/serializers.py:1885
+#: part/serializers.py:1883
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:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr "Dọn dẹp BOM đang tồn tại"
-#: part/serializers.py:1923
+#: part/serializers.py:1921
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:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr "Chưa chỉ ra cột sản phẩm"
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr "Tìm thấy nhiều sản phẩm phù hợp"
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr "Không tìm thấy sản phẩm nào"
-#: part/serializers.py:2004
+#: part/serializers.py:2002
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:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr "Chưa cung cấp số lượng"
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr "Số lượng không hợp lệ"
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr "Buộc phải nhập ít nhất một mục BOM"
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
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/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr "In tem nhãn"
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
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/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr "Chức năng kho"
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr "Phân bổ đến đơn đặt bản dựng"
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr "Phân bổ đến đơn bán hàng"
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr "Số seri mới nhất"
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr "Tìm kiếm cho số sê ri"
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr "Sửa"
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr "Không tìm thấy ảnh sản phẩm"
msgid "Part Pricing"
msgstr "Định giá sản phẩm"
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr "Viền"
msgid "Print a border around each label"
msgstr "In một viền xung quanh từng nhãn"
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr "Ngang"
@@ -9012,44 +9009,44 @@ msgstr "Cung cấp khả năng quét mã vạch TME"
msgid "The Supplier which acts as 'TME'"
msgstr "Nhà cung cấp hoạt động như 'TME'"
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr "Cài đặt phần mở rộng thành công"
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Cài đặt phần bổ sung đến {path}"
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr "Plugin có sẵn"
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr "Phần bổ sung trao đổi tiền tệ mẫu"
msgid "InvenTree Contributors"
msgstr "Người đóng góp InvenTree"
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr "URL nguồn"
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
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:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr "Tệp mẫu '{template}' đang bị lỗi hoặc không tồn tại"
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr "Mẫu tên tệp"
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr "Bộ lọc"
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr "Khổ giấy cho báo cáo PDF"
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr "Tạo báo cáo theo hướng ngang"
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr "Chiều rộng [mm]"
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr "Chiều rộng nhãn, tính theo mm"
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr "Chiều cao [mm]"
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr "Chiều cao nhãn, tính theo mm"
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr "Mẫu trích"
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr "Tệp báo cáo mẫu"
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr "Mô tả tệp báo cáo mẫu"
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr "Tài sản"
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr "Tệp báo cáo tài sản"
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr "Mô tả tệp báo cáo tài sản"
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr "Kết quả kiểm tra"
msgid "Test"
msgstr "Thử nghiệm"
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr "Kết quả"
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr "ID Khách hàng"
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr "Đã cài đặt trong"
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr "Xóa khi thiếu hụt"
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr "Ngày hết hạn"
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr "Ngày hết hạn sau đó"
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr "Ế"
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr "Vị trí kho hàng"
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr "Chủ sở hữu"
@@ -9826,7 +9891,7 @@ msgstr "Bản dựng nguồn"
msgid "Build for this stock item"
msgstr "Bản dựng cho hàng hóa này"
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr "Tiêu thụ bởi"
@@ -9891,7 +9956,7 @@ msgstr "Số lượng không khớp với số sêri"
msgid "Serial numbers already exist"
msgstr "Số sêri đã tồn tại"
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr "Mã trạng thái kho phải phù hợp"
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:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr "Ghi chú đầu vào"
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
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:2448
+#: stock/models.py:2443
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:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr "Kết quả kiểm thử"
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr "Giá trị đầu ra kiểm thử"
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr "Đính kèm kết quả kiểm thử"
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr "Ghi chú kiểm thử"
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr "Số sêri quá lớn"
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr "Mục cha"
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "Sử dụng kích thước đóng gói khi thêm: Số lượng được định nghĩa là số của gói"
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr "Đã hết hạn"
@@ -10410,7 +10475,7 @@ msgstr "Hàng trong kho này không có bất kỳ hàng hóa con nào"
msgid "Test Data"
msgstr "Thông tin kiểm thử"
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr "Báo cáo kiểm thử"
@@ -10450,200 +10515,204 @@ msgstr "Xác định vị trí hàng tồn kho"
msgid "Scan to Location"
msgstr "Quét vào điểm bán"
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr "Chức năng in"
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr "Chức năng điều chỉnh kho"
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: 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
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr "Thêm hàng"
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr "Xóa hàng hóa"
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr "Sắp xếp hàng hóa"
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: 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
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr "Chỉ định cho khách hàng"
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr "Trả lại kho"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr "Gỡ cài đặt hàng trong kho"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr "Gỡ cài đặt"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr "Lắp đặt hàng hóa trong kho"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr "Cài đặt"
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr "Chuyển đổi thành biến thể"
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr "Mặt hàng trùng lặp"
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr "Sửa mặt hàng"
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr "Xóa mặt hàng"
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "Dựng"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr "Chưa đặt nhà sản xuất"
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
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/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr "Chỉ đọc"
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr "Mặt hàng này không khả dụng"
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr "Mặt hàng này đang được sản xuất và không thể sửa được."
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr "Sửa mặt hàng này từ khung nhìn bản dựng."
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr "Mặt hàng này đã được phân bổ về đơn hàng bán"
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr "Mặt hàng này đã được phân bổ về đơn đặt bản dựng"
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr "Mặt hàng này là tuần tự. Nó có một số sêri duy nhất và số lượng không thể điều chỉnh được"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr "trang trước"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr "Điều hướng đến số sêri trước"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr "trang tiếp theo"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr "Điều hướng đến số sêri tiếp"
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr "Không có vị trí nào được đặt"
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr "Thử nghiệm"
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr "Mặt hàng không đạt toàn bộ yêu cầu thử nghiệm"
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr "Mặt hàng này hết hạn vào %(item.expiry_date)s"
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Mặt hàng này hết hạn vào %(item.expiry_date)s"
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr "Chưa thực hiện kiểm kê"
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr "Chọn một trong những biến thể sản phẩm được liệt kê bên dưới."
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr "Cánh báo"
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr "Thao tác này không thể khôi phục lại một cách dễ dàng"
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr "Loại vị trí mới"
@@ -11367,7 +11436,7 @@ msgstr "Thiết lập đơn hàng bán"
msgid "Stock Settings"
msgstr "Cài đặt kho hàng"
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr "Loại ví trí kho"
@@ -11852,23 +11921,23 @@ msgstr "Thêm đính kèm"
msgid "Barcode Identifier"
msgstr "Nhận dạng mã vạch"
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr "Yêu cầu khởi động máy chủ"
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr "Đã thay đổi tùy chọn cấu hình nên cần phải khởi động lại máy chủ"
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr "Liên lạc với quản trị hệ thống của bạn để biết thêm thông tin"
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr "Di trú cơ sở dữ liệu đang chờ xử lý"
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr "Có di trú cơ sở dữ liệu đang chờ xử lý cần bạn lưu ý"
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
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 334743f35168..2158c95e85cb 100644
--- a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr "中文 (繁体)"
msgid "[{site_name}] Log in to the app"
msgstr "[{site_name}] 登录到应用程序"
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr "同一個上層元件下不能有重複的名字"
msgid "Invalid choice"
msgstr "無效的選項"
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr "名稱"
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr "伺服器錯誤"
msgid "An error has been logged by the server."
msgstr "伺服器紀錄了一個錯誤。"
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr "必須是有效的數字"
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr "從可用選項中選擇貨幣"
msgid "Username"
msgstr "用户名"
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr "名"
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr "用户的名字(不包括姓氏)"
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr "姓"
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr "用户的姓氏"
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr "用户的电子邮件地址"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr "职员"
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr "此用户是否拥有员工权限"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr "超级用户"
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr "此用户是否为超级用户"
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr "此用户是否为超级用户"
msgid "Active"
msgstr "激活"
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr "此用户帐户是否已激活"
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr "您沒有更改這個使用者角色的權限"
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr "只有管理員帳戶可以建立新的使用者"
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr "您的帳號已經建立完成。"
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr "請使用重設密碼功能來登入"
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr "歡迎使用 InvenTree"
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr "无效值"
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr "数据文件"
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr "选择要上传的数据文件"
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr "不支持的文件类型"
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr "文件过大"
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr "在文件中没有找到列"
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr "在文件中没有找到数据行"
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr "没有提供数据行"
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr "没有提供数据列"
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr "缺少必需的列:'{name}'"
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr "重复列: '{col}'"
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr "远程图片"
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr "远程图片文件的 URL"
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr "未启用从远程 URL下载图片"
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr "后台执行器检查失败"
@@ -735,7 +735,7 @@ msgstr "上層生產工單"
#: build/api.py:59
msgid "Ancestor Build"
-msgstr ""
+msgstr "可测试部分"
#: build/api.py:78 order/api.py:92 templates/js/translated/table_filters.js:101
#: templates/js/translated/table_filters.js:549
@@ -753,13 +753,13 @@ msgstr "发布者"
#: build/api.py:114
msgid "Assigned To"
-msgstr ""
+msgstr "已分配到"
#: build/api.py:275
msgid "Build must be cancelled before it can be deleted"
msgstr "工單必須被取消才能被刪除"
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr "工單必須被取消才能被刪除"
msgid "Consumable"
msgstr "耗材"
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr "非必須項目"
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -793,7 +793,7 @@ msgstr "追蹤中"
#: templates/js/translated/table_filters.js:146
#: templates/js/translated/table_filters.js:779
msgid "Testable"
-msgstr ""
+msgstr "可测试"
#: build/api.py:325 part/admin.py:144 templates/js/translated/build.js:1920
#: templates/js/translated/build.js:2823
@@ -816,7 +816,7 @@ msgstr "已分配"
msgid "Available"
msgstr "可用數量"
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr "可用數量"
msgid "Build Order"
msgstr "生產工單"
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr "生產工單代號"
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr "這張生產工單對應的上層生產工單"
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr "負責此生產工單的使用者或群組"
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr "外部連結"
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr "外部URL連結"
@@ -1110,7 +1110,7 @@ msgstr "生產工單 {build} 已經完成"
msgid "A build order has been completed"
msgstr "一張生產工單已經完成"
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr "未指定产出"
@@ -1122,37 +1122,37 @@ msgstr "产出已完成"
msgid "Build output does not match Build Order"
msgstr "产出与生产订单不匹配"
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr "數量必須大於零"
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr "数量不能大于输出数量"
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr "产出 {serial} 未通过所有必要测试"
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr "生产订单行项目"
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr "生产对象"
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr "生产对象"
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr "生产对象"
msgid "Quantity"
msgstr "數量"
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr "生產工單所需數量"
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "生产项必须指定产出,因为主零件已经被标记为可追踪的"
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "分配的數量({q})不能超過可用的庫存數量({a})"
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr "庫存品項超額分配"
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr "分配的數量必須大於零"
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr "有序號的品項數量必須為1"
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr "選擇的庫存品項和BOM的項目不符"
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,28 +1241,28 @@ msgstr "選擇的庫存品項和BOM的項目不符"
msgid "Stock Item"
msgstr "庫存品項"
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr "來源庫存項目"
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr "要分配的庫存數量"
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr "安裝到"
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr "目的庫存品項"
#: build/serializers.py:107
msgid "Build Level"
-msgstr ""
+msgstr "构建等级"
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr "零件名称"
@@ -1273,7 +1273,7 @@ msgstr "项目编码标签"
#: build/serializers.py:133
msgid "Create Child Builds"
-msgstr ""
+msgstr "新建子版本"
#: build/serializers.py:134
msgid "Automatically generate child build orders"
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr "输出产出的序列号"
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr "已完成删除的库存地点"
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr "对于被追踪的零件的分配,必须指定生产产出"
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "对于未被追踪的零件,无法指定生产产出"
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr "必须提供分配项目"
@@ -1590,7 +1590,7 @@ msgstr "物料清单参考"
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr "打包"
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr "零件编号"
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr "零件的内部零件号"
@@ -1625,7 +1625,7 @@ msgstr "物料清单零件名称"
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr "序列号"
msgid "Allocated Quantity"
msgstr "已分配数量"
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr "可用数量"
@@ -1667,13 +1667,13 @@ msgstr "可追踪"
msgid "Inherited"
msgstr "已继承的"
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr "物料清单项"
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr "分配库存"
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr "分配库存"
msgid "On Order"
msgstr "已订购"
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr "生产中"
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr "可用的变体库存"
msgid "Total Available Stock"
msgstr "全部可用库存"
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr "外部库存"
@@ -1745,7 +1745,7 @@ msgstr "已取消"
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr "完成"
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr "删除生产操作"
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr "发布生产"
@@ -1931,7 +1928,7 @@ msgstr "产出已完成"
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr "已分配的零件"
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr "未完成的产出"
msgid "Test Statistics"
msgstr "测试统计"
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr "是否链接"
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr "是否为文件"
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr "用户没有权限删除此附件"
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr "用户没有权限删除此附件"
@@ -2352,8 +2349,8 @@ msgstr "检查更新的频率(设置为零以禁用)"
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr "天"
@@ -2581,9 +2578,9 @@ msgstr "复制类别参数模板"
msgid "Copy category parameter templates when creating a part"
msgstr "创建零件时复制类别参数模板"
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr "默认情况下,元件可由其他零件组装而成"
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr "组件"
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr "记录生成报告时出现的错误"
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr "页面大小"
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr "PDF 报告默认页面大小"
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr "启用测试报告"
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr "启用生成测试报表"
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr "添加测试报告"
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr "在打印测试报告时,将测试报告副本附加到相关的库存项"
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr "全局唯一序列号"
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr "库存项的序列号必须全局唯一"
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr "自动填充序列号"
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr "在表格中自动填充序列号"
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr "删除已耗尽的库存"
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr "设置库存耗尽时的默认行为"
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr "批号模板"
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr "为库存项生成默认批号的模板"
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr "库存过期"
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr "启用库存过期功能"
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr "销售过期库存"
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr "允许销售过期库存"
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr "库存过期时间"
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr "库存项在到期前被视为过期的天数"
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr "生产过期库存"
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr "允许用过期的库存生产"
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr "库存所有权控制"
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr "启用库存地点和项目的所有权控制"
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr "库存地点默认图标"
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr "库存地点默认图标 (空表示没有图标)"
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr "显示已安装的库存项"
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr "在库存表中显示已安装的库存项"
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr "在安装项目时检查物料清单"
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr "已安装的库存项目必须存在于上级零件的物料清单中"
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr "允许超出库存转移"
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr "允许非库存的库存项目在库存位置之间转移"
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr "生产订单参考模式"
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr "生成生产订单参考字段所需的模式"
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr "要求负责人"
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr "必须为每个订单分配一个负责人"
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr "需要活动零件"
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr "防止为非活动零件创建生产订单"
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr "需要锁定零件"
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr "防止为未锁定的零件创建生产订单"
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr "需要有效的物料清单"
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr "除非物料清单已验证,否则禁止创建生产订单"
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr "需要关闭子订单"
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr "在所有子订单关闭之前,阻止生产订单的完成"
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr "阻止直到测试通过"
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "在所有必要的测试通过之前,阻止产出完成"
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr "启用订单退货"
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr "在用户界面中启用订单退货功能"
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr "退货订单参考模式"
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr "生成退货订单参考字段所需的模式"
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr "编辑已完成的退货订单"
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr "允许编辑已完成的退货订单"
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr "销售订单参考模式"
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr "生成销售订单参考字段所需参照模式"
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr "销售订单默认配送方式"
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr "启用创建销售订单的默认配送功能"
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr "编辑已完成的销售订单"
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "允许在订单配送或完成后编辑销售订单"
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr "标记该订单为已完成?"
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "标记为已发货的销售订单将自动完成,绕过“已发货”状态"
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr "采购订单参考模式"
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr "生成采购订单参考字段所需的模式"
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr "编辑已完成的采购订单"
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "允许在采购订单已配送或完成后编辑订单"
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr "自动完成采购订单"
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "当收到所有行项目时,自动将采购订单标记为完成"
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr "忘记启用密码"
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr "在登录页面上启用忘记密码功能"
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr "启用注册"
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr "在登录页面为用户启用自行注册功能"
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr "启用单点登录"
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr "在登录界面启用单点登录"
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr "启用单点登录注册"
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "允许登录页面上的用户通过 SSO 进行自我注册"
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr "启用单点登录群组同步"
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "启用库存管理系统组和由身份提供者提供的组的同步功能"
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr "单点登录系统组密钥"
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "由身份提供者提供的组声明属性名称"
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr "单点登录系统组地图"
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr "移除单点登录系统以外的群组"
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr "需要邮箱地址"
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr "要求用户在注册时提供邮件"
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr "自动填充单点登录系统用户"
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr "自动使用单点登录系统账户的数据填写用户详细信息"
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr "发两次邮件"
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr "注册时询问用户他们的电子邮件两次"
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr "两次输入密码"
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr "当注册时请用户输入密码两次"
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr "域名白名单"
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "限制注册到某些域名 (逗号分隔,以 @ 开头)"
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr "注册群组"
-#: common/models.py:2049
+#: common/models.py:2035
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "注册时分配给新用户的组。 如果启用了单点登录系统群组同步,此群组仅在无法从 IdP 分配任何群组的情况下才被设置。"
-#: common/models.py:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr "强制启用多因素安全认证"
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr "用户必须使用多因素安全认证。"
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr "启动时检查插件"
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "启动时检查全部插件是否已安装 - 在容器环境中启用"
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr "检查插件更新"
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr "启用定期检查已安装插件的更新"
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr "启用统一资源定位符集成"
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr "启用插件以添加统一资源定位符路由"
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr "启用导航集成"
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr "启用插件以集成到导航中"
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr "启用应用集成"
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr "启用插件添加应用"
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr "启用调度集成"
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr "启用插件来运行预定任务"
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr "启用事件集成"
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr "启用插件响应内部事件"
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr "启用项目编码"
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr "启用项目编码来跟踪项目"
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr "盘点功能"
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr "启用盘点功能以记录库存水平和计算库存值"
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr "排除外部地点"
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "从盘点计算中排除外部地点的库存项"
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr "自动盘点周期"
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr "自动盘点记录之间的天数 (设置为零以禁用)"
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr "报告删除间隔"
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr "盘点报告将在指定天数后删除"
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr "显示用户全名"
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr "显示用户全名而不是用户名"
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr "启用测试站数据"
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr "启用测试站数据收集以获取测试结果"
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr "设置键 (必须是唯一的,不区分大小写"
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr "隐藏非活动零件"
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr "隐藏主页上显示的结果中的非活动零件"
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr "显示已订阅的零件"
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr "在主页上显示已订阅的零件"
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr "显示已订阅的类别"
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr "在主页上显示已订阅的零件类别"
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr "显示最新零件"
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr "在主页上显示最新零件"
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr "显示无效的物料清单"
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr "在主页上显示等待验证的物料清单"
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr "显示最近的库存变动"
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr "在主页上显示最近更改的库存项目"
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr "显示低库存"
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr "在主页上显示低库存商品"
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr "显示已耗尽的库存"
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr "在主页上显示已耗尽的库存项目"
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr "显示所需库存"
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr "在主页上显示构建所需的库存项目"
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr "显示过期库存"
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr "在主页上显示过期的库存项目"
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr "显示过期库存"
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr "在主页上显示过期库存商品"
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr "显示待处理的构建"
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr "在主页上显示待处理的构建"
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr "显示过期的构建"
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr "在主页上显示过期的构建"
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr "显示出色的PO"
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr "在主页上显示优秀的PO"
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr "显示过期订单"
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr "在主页上显示逾期订单"
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr "展示杰出的SO"
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr "在主页上显示优秀的SO"
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr "显示过期的SO"
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr "在主页上显示过期的SO"
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr "显示待处理的SO发货"
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr "在主页上显示待处理的SO发货"
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr "显示新闻"
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr "在主页上显示新闻"
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr "内联标签显示"
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "在浏览器中显示PDF标签,而不是作为文件下载"
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr "默认标签打印机"
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr "配置默认情况下应选择哪个标签打印机"
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr "内联报告显示"
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "在浏览器中显示PDF报告,而不是作为文件下载"
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr "搜索零件"
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr "在搜索预览窗口中显示零件"
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr "搜索供应商零件"
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr "在搜索预览窗口中显示供应商零件"
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr "搜索制造商零件"
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr "在搜索预览窗口中显示制造商零件"
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr "隐藏非活动零件"
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr "从搜索预览窗口中排除非活动零件"
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr "搜索分类"
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr "在搜索预览窗口中显示零件类别"
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr "搜索库存"
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr "在搜索预览窗口中显示库存项目"
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr "隐藏不可用的库存项目"
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr "排除搜索预览窗口中不可用的库存项目"
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr "搜索地点"
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr "在搜索预览窗口中显示库存位置"
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr "搜索公司"
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr "在搜索预览窗口中显示公司"
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr "搜索生产订单"
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr "在搜索预览窗口中显示生产订单"
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr "搜索采购订单"
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr "在搜索预览窗口中显示采购订单"
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr "排除未激活的采购订单"
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr "从搜索预览窗口中排除不活动的采购订单"
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr "搜索销售订单"
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr "在搜索预览窗口中显示销售订单"
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr "排除未激活的销售订单"
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr "从搜索预览窗口中排除不活动的销售订单"
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr "搜索退货订单"
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr "在搜索预览窗口中显示退货订单"
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr "排除未激活的退货订单"
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr "从搜索预览窗口中排除不活动的退货订单"
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr "搜索预览结果"
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr "在搜索预览窗口的每个部分中显示的结果数"
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr "正则表达式搜索"
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr "在搜索查询中启用正则表达式"
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr "整词搜索"
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr "搜索查询返回整词匹配的结果"
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr "在表格中显示数量"
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr "以某些形式显示可用零件数量"
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr "Esc键关闭窗体"
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr "使用ESC键关闭模态窗体"
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr "固定导航栏"
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr "导航栏位置固定在屏幕顶部"
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr "时间格式"
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr "显示时间的首选格式"
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr "零件调度"
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr "显示零件排程信息"
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr "零件盘点"
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr "显示零件盘点信息 (如果启用了盘点功能)"
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr "表字符串长度"
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr "表视图中显示的字符串的最大长度限制"
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr "接收错误报告"
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr "接收系统错误通知"
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr "上次使用的打印设备"
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr "为用户保存上次使用的打印设备"
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr "使用者"
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr "批发价数量"
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr "批发价数量"
msgid "Price"
msgstr "价格"
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr "指定数量的单位价格"
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr "端点"
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr "接收此网络钩子的端点"
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr "此网络钩子的名称"
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr "网络钩子是否已启用"
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr "令牌"
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr "访问令牌"
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr "密钥"
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr "HMAC共享密钥"
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr "消息ID"
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr "此邮件的唯一标识符"
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr "主机"
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr "接收此消息的主机"
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr "标题"
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr "此消息的标题"
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr "正文"
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr "此消息的正文"
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr "接收此消息的终点"
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr "工作于"
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr "这条消息的工作完成了吗?"
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr "标识"
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr "标题"
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr "标题"
msgid "Link"
msgstr "連結"
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr "已发布"
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr "摘要"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr "阅读"
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr "这条新闻被阅读了吗?"
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr "图像"
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr "图像文件"
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr "此图像的目标模型类型"
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr "此图像的目标型号ID"
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr "自定义单位"
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr "单位符号必须唯一"
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr "单位名称必须是有效的标识符"
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr "单位名称"
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr "符号"
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr "可选单位符号"
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr "定义"
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr "单位定义"
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr "附件"
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr "缺少檔案"
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr "缺少外部連結"
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr "選擇附件"
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr "註解"
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr "附件评论"
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr "上传日期"
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr "上传文件的日期"
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr "文件大小"
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr "文件大小,以字节为单位"
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr "为附件指定的模型类型无效"
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr "键"
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
-msgstr ""
+msgstr "将保存到模型数据库中的值"
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr "已收到退货订单中的物品"
msgid "Error raised by plugin"
msgstr "插件引发的错误"
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr "正在运行"
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr "等待完成的任务"
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr "预定的任务"
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr "失败的任务"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr "任务ID"
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr "唯一任务ID"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr "锁定"
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr "锁定时间"
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr "任务名称"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr "功能"
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr "功能名称"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr "参数"
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr "任务参数"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr "关键字参数"
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr "任务关键词参数"
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr "檔案名稱"
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr "模型类型"
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr "用户无权为此模式创建或编辑附件"
@@ -4447,12 +4444,12 @@ msgstr "链接地址信息 (外部)"
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr "制造商零件"
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr "基础零件"
@@ -4463,8 +4460,8 @@ msgstr "选择零件"
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr "选择制造商"
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr "参数名称"
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr "参数值"
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr "参数单位"
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr "链接的制造商零件必须引用相同的基础零件"
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr "供应商"
msgid "Select supplier"
msgstr "选择供应商"
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr "供应商库存管理单位"
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr "供应商零件说明"
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr "供应商零件说明"
msgid "Note"
msgstr "备注"
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr "基本费用"
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr "最低费用(例如库存费)"
@@ -4629,7 +4626,7 @@ msgstr "包装数量"
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr "单包供应的总数量。为单个项目留空。"
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr "多个"
@@ -4661,7 +4658,7 @@ msgstr "此供应商使用的默认货币"
msgid "Company Name"
msgstr "公司名称"
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr "删除图像"
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr "没有可用的供应商信息"
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr "更新零件可用性"
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr "行索引"
msgid "Original row data"
msgstr "原始行数据"
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr "数据"
@@ -5473,7 +5470,7 @@ msgstr "订单待定"
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr "收到的物品数量"
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr "采购价格"
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr "检查此装运的用户"
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr "配送"
@@ -5982,7 +5979,7 @@ msgstr "行项目"
msgid "Line item does not match purchase order"
msgstr "行项目与采购订单不匹配"
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr "为收到的物品选择目的地位置"
@@ -6019,7 +6016,7 @@ msgstr "条形码已被使用"
msgid "An integer quantity must be provided for trackable parts"
msgstr "必须为可跟踪零件提供整数数量"
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr "必须提供行项目"
@@ -6051,39 +6048,39 @@ msgstr "数量必须为正"
msgid "Enter serial numbers to allocate"
msgstr "输入要分配的序列号"
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr "货物已发出"
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr "发货与此订单无关"
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr "未找到以下序列号的匹配项"
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
-msgstr "以下序列号已分配"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
+msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr "退货订单行项目"
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr "行项目与退货订单不匹配"
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr "行项目已收到"
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr "只能根据正在进行的订单接收物品"
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr "行价格货币"
@@ -6510,7 +6507,7 @@ msgstr "更新零件{part} 单价到{price}"
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "更新零件 {part} 单价到 {price} 且更新数量到 {qty}"
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr "零件图像"
msgid "Category ID"
msgstr "类别 ID"
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr "类别名称"
@@ -6562,18 +6559,18 @@ msgstr "最低库存"
msgid "Used In"
msgstr "用于"
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr "正在生产"
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr "最低成本"
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr "最高成本"
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr "类别路径"
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr "父类内部零件号"
msgid "Part Revision"
msgstr "零件修订版本"
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr "最低价格"
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr "有修订版本"
msgid "BOM Valid"
msgstr "物料清单合规"
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr "使用"
msgid "Default Location"
msgstr "默认位置"
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr "库存总量"
@@ -6755,7 +6752,7 @@ msgstr "库存总量"
msgid "Input quantity for price calculation"
msgstr "输入用于价格计算的数量"
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "零件类别"
@@ -6878,7 +6875,7 @@ msgstr "有这个名字,内部零件号,和修订版本的零件已经存在
msgid "Parts cannot be assigned to structural part categories!"
msgstr "零件不能分配到结构性零件类别!"
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr "零件名称"
@@ -6906,7 +6903,7 @@ msgstr "提高搜索结果可见性的零件关键字"
msgid "Part category"
msgstr "零件类别"
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr "零件修订版本或版本号"
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr "此零件的负责人"
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr "最近库存盘点"
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr "出售多个"
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr "用于缓存定价计算的货币"
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr "最低物料清单成本"
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr "元件的最低成本"
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr "物料清单的最高成本"
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr "元件的最高成本"
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr "最低购买成本"
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr "最高历史购买成本"
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr "最大购买成本"
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr "最高历史购买成本"
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr "最低内部价格"
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr "基于内部批发价的最低成本"
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr "最大内部价格"
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr "基于内部批发价的最高成本"
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr "供应商最低价格"
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr "外部供应商零件的最低价格"
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr "供应商最高价格"
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr "来自外部供应商的商零件的最高价格"
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr "最小变体成本"
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr "计算出的变体零件的最低成本"
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr "最大变体成本"
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr "计算出的变体零件的最大成本"
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr "覆盖最低成本"
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr "覆盖最大成本"
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr "计算总最低成本"
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr "计算总最大成本"
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr "最低售出价格"
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr "基于批发价的最低售出价格"
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr "最高售出价格"
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr "基于批发价的最大售出价格"
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr "最低销售成本"
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr "历史最低售出价格"
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr "最高销售成本"
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr "历史最高售出价格"
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr "用于盘点的零件"
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr "物品数量"
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr "盘点时的个别库存条目数"
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr "盘点时可用库存总额"
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr "盘点时可用库存总额"
msgid "Date"
msgstr "日期"
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr "进行盘点的日期"
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr "附加注释"
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr "进行此盘点的用户"
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr "最低库存成本"
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr "现有存库存最低成本估算"
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr "最高库存成本"
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr "目前库存最高成本估算"
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr "报告"
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr "盘点报告文件(内部生成)"
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr "零件计数"
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr "盘点涵盖的零件数量"
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr "请求此盘点报告的用户"
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr "零件售出价格折扣"
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr "零件测试模板"
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr "模板名称无效 - 必须包含至少一个字母或者数字"
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr "选择必须是唯一的"
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr "零件已存在具有相同主键的测试模板"
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr "测试名"
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr "输入测试的名称"
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr "测试主键"
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr "简化测试主键"
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr "测试说明"
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr "输入测试的描述"
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr "已启用"
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr "此测试是否已启用?"
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr "必须的"
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr "需要此测试才能通过吗?"
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr "需要值"
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr "添加测试结果时是否需要一个值?"
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr "需要附件"
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr "添加测试结果时是否需要文件附件?"
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr "选项"
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr "此测试的有效选择 (逗号分隔)"
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr "零件参数模板"
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr "勾选框参数不能有单位"
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr "复选框参数不能有选项"
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr "参数模板名称必须是唯一的"
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr "参数名称"
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr "此参数的物理单位"
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr "参数说明"
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr "勾选框"
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr "此参数是否为勾选框?"
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr "此参数的有效选择 (逗号分隔)"
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr "零件参数"
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr "参数不能被修改 - 零件被锁定"
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr "无效的参数值选择"
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr "父零件"
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr "参数模板"
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr "参数值"
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr "零件类别参数模板"
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr "默认值"
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr "默认参数值"
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr "零件ID或零件名称"
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr "唯一零件ID值"
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr "零件内部零件号"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr "级"
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr "物料清单级别"
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr "物料清单项目不能被修改 - 装配已锁定"
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr "物料清单项目不能修改 - 变体装配已锁定"
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr "选择父零件"
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr "子零件"
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr "选择要用于物料清单的零件"
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr "此物料清单项目的数量"
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr "此物料清单项目是可选的"
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "这个物料清单项目是耗材 (它没有在生产订单中被追踪)"
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "超量"
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "估计生产物浪费量(绝对值或百分比)"
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr "物料清单项目引用"
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr "物料清单项目注释"
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr "校验和"
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr "物料清单行校验和"
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr "已验证"
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr "此物料清单项目已验证"
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr "获取继承的"
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "此物料清单项目是由物料清单继承的变体零件"
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "变体零件的库存项可以用于此物料清单项目"
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr "可追踪零件的数量必须是整数"
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr "必须指定子零件"
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr "物料清单项目替代品"
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr "替代品零件不能与主零件相同"
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr "上级物料清单项目"
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr "替代品零件"
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr "零件 1"
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr "零件2"
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr "选择相关的零件"
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr "零件关系不能在零件和自身之间创建"
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr "复制关系已经存在"
@@ -7571,326 +7568,326 @@ msgstr "购买此库存项的货币"
msgid "Number of parts using this template"
msgstr "使用此模板的零件数"
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr "没有选定零件"
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr "选择类别"
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr "原始零件"
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr "选择要复制的原始零件"
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr "复制图片"
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr "从原零件复制图片"
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr "复制物料清单"
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr "从原始零件复制材料清单"
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr "复制参数"
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr "从原始零件复制参数数据"
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr "复制备注"
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr "从原始零件复制备注"
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr "初始化库存数量"
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "指定此零件的初始库存数量。如果数量为零,则不添加任何库存。"
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr "初始化库存地点"
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr "初始化指定此零件的库存地点"
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr "选择供应商(或为空以跳过)"
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr "选择制造商(或为空)"
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr "制造商零件号"
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr "所选公司不是一个有效的供应商"
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr "所选公司不是一个有效的制造商"
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr "与此制造商零件编号 (MPN) 的相匹配的制造商零件已存在"
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr "匹配此库存单位 (SKU) 的供应商零件已存在"
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr "修订"
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr "未分配的库存"
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr "变体库存"
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr "重复零件"
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr "从另一个零件复制初始数据"
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr "初始库存"
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr "创建具有初始库存数量的零件"
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr "供应商信息"
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr "添加此零件的初始供应商信息"
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr "复制类别参数"
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr "从选择的零件复制参数模版"
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr "现有的图片"
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr "现有零件图片的文件名"
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr "图片不存在"
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr "限制盘点报告到某个特定零件以及任何变体零件"
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr "限制盘点报告到某个特定零件类别以及任何子类别"
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr "限制盘点报告到某个特定零件库存地点以及任何子位置"
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr "排除外部库存"
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr "排除外部位置的库存项"
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr "生成报告"
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr "生成包含计算出来的盘点数据的报告文件"
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr "更新零件"
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr "使用计算出的盘点数据更新指定零件"
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr "盘点功能未启用"
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr "覆盖已计算的最低价格值"
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr "最低价格货币"
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr "覆盖已计算的最高价格值"
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr "最高价格货币"
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr "更新"
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr "更新这个零件的价格"
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "无法将所提供的货币转换为 {default_currency}"
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr "最低价格不能高于最高价格。"
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr "最高价格不能低于最低价格"
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr "选择父装配"
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr "元件名称"
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr "元件内部零件号"
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr "元件描述"
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr "选择零部件"
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr "可以创建"
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr "选择要复制物料清单的零件"
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr "移除现有数据"
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr "复制前删除现有的物料清单项目"
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr "包含继承的"
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr "包含从模板零件继承的物料清单项目"
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr "跳过无效行"
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr "启用此选项以跳过无效行"
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr "复制替代品零件"
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr "复制物料清单项目时复制替代品零件"
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr "清除现有的物料清单"
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr "上传前删除现有的物料清单项目"
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr "未指定零件列"
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr "找到多个匹配的零件。"
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr "没有找到匹配的零件"
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr "零件未指定为元件"
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr "未提供数量"
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr "无效的数量"
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr "至少需要一个物料清单项目"
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr "订阅此零件的通知"
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr "打印标签"
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr "显示定价信息"
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr "库存操作"
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr "分配到生产订单"
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr "分配到销售订单"
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr "最新序列号"
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr "搜索序列号"
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr "编辑"
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr "未找到零件图片"
msgid "Part Pricing"
msgstr "零件价格"
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr "插件不能被删除,因为它当前处于激活状态"
@@ -8940,7 +8937,7 @@ msgstr "边框"
msgid "Print a border around each label"
msgstr "打印每个标签的边框"
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr "横屏模式"
@@ -9012,44 +9009,44 @@ msgstr "为扫描 TME 条形码提供支持"
msgid "The Supplier which acts as 'TME'"
msgstr "作为‘TME’的供应商"
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr "只有员工用户可以管理插件"
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr "插件安装已禁用"
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr "插件安装成功"
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "插件安装到 {path}"
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr "在插件仓库中找不到插件"
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr "插件不是一个打包的插件"
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr "找不到插件包名称"
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr "插件卸载已禁用"
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "插件无法卸载,因为它目前处于激活状态"
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr "插件卸载成功"
@@ -9098,7 +9095,7 @@ msgstr "内置插件"
msgid "Package Plugin"
msgstr "软件包插件"
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr "货币兑换插件示例"
msgid "InvenTree Contributors"
msgstr "InvenTree 贡献者"
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr "源URL"
@@ -9245,12 +9274,36 @@ msgstr "删除配置"
msgid "Delete the plugin configuration from the database"
msgstr "从数据库中删除插件配置"
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr "没有为模板提供有效对象"
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr "没有有效的项目提供到模板"
msgid "Error printing label"
msgstr "打印标签出错"
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr "模板文件'{template}' 丢失或不存在"
@@ -9318,135 +9375,143 @@ msgstr "模板说明"
msgid "Revision number (auto-increments)"
msgstr "修订编号 (自动增量)"
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr "文件名样式"
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr "生成文件名模式"
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr "模板已启用"
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr "模版的目标模型类型"
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr "筛选器"
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr "模版查询筛选器 (逗号分隔的键值对列表)"
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr "模板包文件"
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr "PDF 报告的页面大小"
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr "横向渲染报告"
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr "宽度 [mm]"
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr "标签宽度,以毫米为单位。"
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr "高度 [mm]"
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr "标签高度,以毫米为单位。"
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr "要处理的项目数量"
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr "报告生成完成"
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr "进度"
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr "报告生成进度"
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr "报告模板"
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr "输出文件"
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr "生成输出文件"
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr "标签输出插件"
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr "标签模板"
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr "代码片段"
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr "报告代码片段文件"
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr "代码片段文件描述"
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr "资产"
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr "报告资产文件"
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr "资产文件描述"
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr "选择报表模板"
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr "要包含在报告中的项目主键列表"
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr "选择标签模板"
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr "打印插件"
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr "选择用于标签打印的插件"
@@ -9517,7 +9582,7 @@ msgstr "测试结果"
msgid "Test"
msgstr "测试"
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr "结果"
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr "客户 ID"
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr "安装于"
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr "在消耗品上删除"
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr "有效期至"
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr "过期日期后"
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr "过期"
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr "库存地点"
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr "所有者"
@@ -9826,7 +9891,7 @@ msgstr "源代码构建"
msgid "Build for this stock item"
msgstr "为此库存项目构建"
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr "消费者"
@@ -9891,7 +9956,7 @@ msgstr "数量不匹配序列号"
msgid "Serial numbers already exist"
msgstr "序列号已存在"
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr "测试模板不存在"
@@ -9939,67 +10004,67 @@ msgstr "库存状态码必须匹配"
msgid "StockItem cannot be moved as it is not in stock"
msgstr "库存项不能移动,因为它没有库存"
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr "库存项跟踪"
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr "条目注释"
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr "库存项测试结果"
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr "必须为此测试提供值"
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr "测试附件必须上传"
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr "此测试的值无效"
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr "测试结果"
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr "测试输出值"
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr "测验结果附件"
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr "测试备注"
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr "测试站"
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr "进行测试的测试站的标识符"
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr "已开始"
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr "测试开始的时间戳"
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr "已完成"
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr "测试结束的时间戳"
@@ -10059,7 +10124,7 @@ msgstr "测试完成时间不能早于测试开始时间"
msgid "Serial number is too large"
msgstr "序列号太大"
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr "父项"
@@ -10071,7 +10136,7 @@ msgstr "父库存项"
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr "添加时使用包装尺寸:定义的数量是包装的数量"
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr "已过期"
@@ -10410,7 +10475,7 @@ msgstr "此库存商品没有任何子商品"
msgid "Test Data"
msgstr "测试数据"
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr "测试报告"
@@ -10450,200 +10515,204 @@ msgstr "查找库存项目"
msgid "Scan to Location"
msgstr "扫描到位置"
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr "打印操作"
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr "打印报告"
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr "库存调整操作"
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr "清点库存"
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr "增加库存"
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr "移除库存"
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr "序列化库存"
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr "转移库存"
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr "分配给客户"
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr "返回库存"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr "卸载库存项目"
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr "卸载"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr "安装库存项"
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr "安装"
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr "转换为变体"
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr "复制库存项目"
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr "编辑库存项"
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr "删除库存项"
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr "生产"
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr "未设置制造商"
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr "您不在此项目的所有者列表中。此库存项目不可编辑。"
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr "只读"
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr "此库存项不可用"
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr "此库存项目正在生产中,无法编辑。"
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr "从构建视图中编辑库存项目。"
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr "此库存项目已分配给销售订单"
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr "此库存项目已分配给生产订单"
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr "此库存商品已序列化。它有一个唯一的序列号,数量无法调整"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr "上一页"
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr "导航到上一个序列号"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr "下一页"
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr "导航到下一个序列号"
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr "未设置位置"
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr "测试"
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr "此库存项目未通过所有要求的测试"
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr "此库存项在 %(item.expiry_date)s 过期"
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "此库存项在 %(item.expiry_date)s 过期"
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr "未进行盘点"
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr "库存项"
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr "编辑库存状态"
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr "库存项二维码"
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr "将条形码链接到库存项"
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr "选择下面列出的零件变体之一。"
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr "警告"
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr "此操作不易撤消"
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr "转换库存项目"
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr "返回到库存"
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr "删除地点类型"
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr "新建位置类型"
@@ -11367,7 +11436,7 @@ msgstr "销售订单设置"
msgid "Stock Settings"
msgstr "库存设置"
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr "库存地点类型"
@@ -11852,23 +11921,23 @@ msgstr "添加附件"
msgid "Barcode Identifier"
msgstr "条形码验证器"
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr "需要重新启动服务器"
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr "配置选项已更改,需要重新启动服务器"
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr "有关详细信息,请与系统管理员联系"
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr "待处理的数据库迁移"
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr "有一些待处理的数据库迁移需要注意"
@@ -13946,10 +14015,6 @@ msgstr "编辑行项目"
msgid "Delete line item"
msgstr "删除行项目"
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr "打印报告"
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr "报告打印成功"
@@ -14728,7 +14793,7 @@ msgstr "订单状态"
#: templates/js/translated/table_filters.js:161
msgid "Testable Part"
-msgstr ""
+msgstr "可测试部分"
#: templates/js/translated/table_filters.js:165
msgid "Trackable Part"
diff --git a/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po
index cf67d4d0bb4a..c52a442966a9 100644
--- a/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-29 07:07+0000\n"
-"PO-Revision-Date: 2024-08-29 07:10\n"
+"POT-Creation-Date: 2024-09-16 00:37+0000\n"
+"PO-Revision-Date: 2024-09-16 00:40\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"Language: zh_TW\n"
@@ -65,9 +65,9 @@ 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:3309 part/templates/part/part_sidebar.html:65
+#: part/models.py:3296 part/templates/part/part_sidebar.html:65
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2557
+#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552
#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989
#: stock/serializers.py:1039 stock/serializers.py:1350
#: stock/serializers.py:1439 stock/serializers.py:1604
@@ -364,7 +364,7 @@ msgstr ""
msgid "[{site_name}] Log in to the app"
msgstr ""
-#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413
+#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416
#: company/models.py:133 company/templates/company/company_base.html:138
#: templates/InvenTree/settings/user.html:49
#: templates/js/translated/company.js:677
@@ -419,9 +419,9 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:767 common/models.py:2704 common/models.py:3131
-#: common/models.py:3351 common/serializers.py:439 company/models.py:590
-#: machine/models.py:24 part/models.py:995 part/models.py:3776
+#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132
+#: common/models.py:3352 common/serializers.py:455 company/models.py:590
+#: machine/models.py:24 part/models.py:995 part/models.py:3763
#: plugin/models.py:51 report/models.py:149 stock/models.py:82
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/notifications.html:17
@@ -446,10 +446,10 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:107 order/models.py:289
#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018
-#: part/models.py:3791 part/templates/part/category.html:79
+#: part/models.py:3778 part/templates/part/category.html:79
#: part/templates/part/part_base.html:170
#: part/templates/part/part_scheduling.html:12 report/models.py:155
-#: report/models.py:509 report/models.py:535
+#: report/models.py:517 report/models.py:543
#: report/templates/report/inventree_build_order_report.html:117
#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122
#: templates/InvenTree/settings/notifications.html:19
@@ -517,12 +517,12 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:63 part/models.py:4400
+#: InvenTree/serializers.py:63 part/models.py:4387
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:100 company/models.py:183
-#: company/templates/company/company_base.html:112 part/models.py:3127
+#: company/templates/company/company_base.html:112 part/models.py:3114
#: templates/InvenTree/settings/settings_staff_js.html:44
#: templates/currency_data.html:5
msgid "Currency"
@@ -536,43 +536,43 @@ msgstr ""
msgid "Username"
msgstr ""
-#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37
+#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37
msgid "First Name"
msgstr ""
-#: InvenTree/serializers.py:407
+#: InvenTree/serializers.py:408
msgid "First name of the user"
msgstr ""
-#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41
+#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41
msgid "Last Name"
msgstr ""
-#: InvenTree/serializers.py:410
+#: InvenTree/serializers.py:412
msgid "Last name of the user"
msgstr ""
-#: InvenTree/serializers.py:413
+#: InvenTree/serializers.py:416
msgid "Email address of the user"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Staff"
msgstr ""
-#: InvenTree/serializers.py:438
+#: InvenTree/serializers.py:441
msgid "Does this user have staff permissions"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Superuser"
msgstr ""
-#: InvenTree/serializers.py:441
+#: InvenTree/serializers.py:445
msgid "Is this user a superuser"
msgstr ""
-#: InvenTree/serializers.py:444 common/models.py:2709 company/models.py:160
+#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160
#: company/models.py:798 machine/models.py:39 part/admin.py:88
#: part/models.py:1201 plugin/models.py:66
#: templates/js/translated/company.js:523
@@ -585,89 +585,89 @@ msgstr ""
msgid "Active"
msgstr ""
-#: InvenTree/serializers.py:444
+#: InvenTree/serializers.py:449
msgid "Is this user account active"
msgstr ""
-#: InvenTree/serializers.py:462
+#: InvenTree/serializers.py:467
msgid "You do not have permission to change this user role."
msgstr ""
-#: InvenTree/serializers.py:474
+#: InvenTree/serializers.py:503
msgid "Only superusers can create new users"
msgstr ""
-#: InvenTree/serializers.py:493
+#: InvenTree/serializers.py:522
msgid "Your account has been created."
msgstr ""
-#: InvenTree/serializers.py:495
+#: InvenTree/serializers.py:524
msgid "Please use the password reset function to login"
msgstr ""
-#: InvenTree/serializers.py:502
+#: InvenTree/serializers.py:531
msgid "Welcome to InvenTree"
msgstr ""
-#: InvenTree/serializers.py:560
+#: InvenTree/serializers.py:589
msgid "Invalid value"
msgstr ""
-#: InvenTree/serializers.py:580 importer/models.py:64
+#: InvenTree/serializers.py:609 importer/models.py:64
msgid "Data File"
msgstr ""
-#: InvenTree/serializers.py:581
+#: InvenTree/serializers.py:610
msgid "Select data file for upload"
msgstr ""
-#: InvenTree/serializers.py:598
+#: InvenTree/serializers.py:627
msgid "Unsupported file type"
msgstr ""
-#: InvenTree/serializers.py:604
+#: InvenTree/serializers.py:633
msgid "File is too large"
msgstr ""
-#: InvenTree/serializers.py:625
+#: InvenTree/serializers.py:654
msgid "No columns found in file"
msgstr ""
-#: InvenTree/serializers.py:628
+#: InvenTree/serializers.py:657
msgid "No data rows found in file"
msgstr ""
-#: InvenTree/serializers.py:740
+#: InvenTree/serializers.py:769
msgid "No data rows provided"
msgstr ""
-#: InvenTree/serializers.py:743
+#: InvenTree/serializers.py:772
msgid "No data columns supplied"
msgstr ""
-#: InvenTree/serializers.py:809
+#: InvenTree/serializers.py:838
#, python-brace-format
msgid "Missing required column: '{name}'"
msgstr ""
-#: InvenTree/serializers.py:818
+#: InvenTree/serializers.py:847
#, python-brace-format
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/serializers.py:857
+#: InvenTree/serializers.py:886
msgid "Remote Image"
msgstr ""
-#: InvenTree/serializers.py:858
+#: InvenTree/serializers.py:887
msgid "URL of remote image file"
msgstr ""
-#: InvenTree/serializers.py:876
+#: InvenTree/serializers.py:905
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/status.py:65 part/serializers.py:1267
+#: InvenTree/status.py:65 part/serializers.py:1265
msgid "Background worker check failed"
msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:319 build/serializers.py:1332 part/models.py:4278
+#: build/api.py:319 build/serializers.py:1332 part/models.py:4265
#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037
#: templates/js/translated/build.js:2705
#: templates/js/translated/table_filters.js:197
@@ -767,7 +767,7 @@ msgstr ""
msgid "Consumable"
msgstr ""
-#: build/api.py:320 build/serializers.py:1333 part/models.py:4272
+#: build/api.py:320 build/serializers.py:1333 part/models.py:4259
#: 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:193
@@ -777,7 +777,7 @@ msgid "Optional"
msgstr ""
#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428
-#: part/models.py:1166 part/serializers.py:1596
+#: part/models.py:1166 part/serializers.py:1594
#: templates/js/translated/bom.js:1639
#: templates/js/translated/table_filters.js:337
#: templates/js/translated/table_filters.js:729
@@ -816,7 +816,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: build/models.py:87 build/templates/build/build_base.html:9
+#: build/models.py:88 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:85 templates/email/build_order_completed.html:16
@@ -825,7 +825,7 @@ msgstr ""
msgid "Build Order"
msgstr ""
-#: build/models.py:88 build/templates/build/build_base.html:13
+#: build/models.py:89 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:111
#: order/templates/order/so_sidebar.html:13
@@ -866,7 +866,7 @@ msgstr ""
#: build/models.py:243 build/serializers.py:1331 order/models.py:468
#: order/models.py:979 order/models.py:1366 order/models.py:2128
-#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54
+#: part/admin.py:414 part/models.py:4280 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
@@ -892,11 +892,11 @@ msgstr ""
#: build/templates/build/build_base.html:105
#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761
#: order/models.py:1496 order/models.py:1651 order/models.py:1652
-#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138
-#: part/models.py:3282 part/models.py:3430 part/models.py:3451
-#: part/models.py:3473 part/models.py:3609 part/models.py:3951
-#: part/models.py:4114 part/models.py:4244 part/models.py:4602
-#: part/serializers.py:1213 part/serializers.py:1857
+#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125
+#: part/models.py:3269 part/models.py:3417 part/models.py:3438
+#: part/models.py:3460 part/models.py:3596 part/models.py:3938
+#: part/models.py:4101 part/models.py:4231 part/models.py:4595
+#: part/serializers.py:1211 part/serializers.py:1855
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
@@ -1063,12 +1063,12 @@ msgstr ""
#: order/templates/order/return_order_base.html:148
#: order/templates/order/sales_order_base.html:187
#: part/templates/part/part_base.html:399 stock/models.py:859
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:196
#: templates/js/translated/company.js:1019
msgid "External Link"
msgstr ""
-#: build/models.py:378 common/models.py:3272 part/models.py:1070
+#: build/models.py:378 common/models.py:3273 part/models.py:1070
#: stock/models.py:859
msgid "Link to external URL"
msgstr ""
@@ -1110,7 +1110,7 @@ msgstr ""
msgid "A build order has been completed"
msgstr ""
-#: build/models.py:968 build/models.py:1056
+#: build/models.py:968 build/models.py:1057
msgid "No build output specified"
msgstr ""
@@ -1122,37 +1122,37 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328
+#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328
#: build/serializers.py:959 order/models.py:565 order/serializers.py:500
-#: order/serializers.py:666 part/serializers.py:1590 part/serializers.py:2019
+#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017
#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/models.py:1065 build/serializers.py:284
+#: build/models.py:1066 build/serializers.py:284
msgid "Quantity cannot be greater than the output quantity"
msgstr ""
-#: build/models.py:1125 build/serializers.py:607
+#: build/models.py:1126 build/serializers.py:607
#, python-brace-format
msgid "Build output {serial} has not passed all required tests"
msgstr ""
-#: build/models.py:1466
+#: build/models.py:1477
msgid "Build Order Line Item"
msgstr ""
-#: build/models.py:1491
+#: build/models.py:1502
msgid "Build object"
msgstr ""
-#: build/models.py:1505 build/models.py:1761 build/serializers.py:266
+#: build/models.py:1516 build/models.py:1775 build/serializers.py:266
#: build/serializers.py:313 build/serializers.py:1339
#: build/templates/build/build_base.html:110
-#: build/templates/build/detail.html:34 common/models.py:2581
+#: build/templates/build/detail.html:34 common/models.py:2582
#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464
#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413
-#: part/forms.py:48 part/models.py:3296 part/models.py:4266
+#: part/forms.py:48 part/models.py:3283 part/models.py:4253
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1163,9 +1163,9 @@ msgstr ""
#: report/templates/report/inventree_test_report.html:90
#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160
#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667
-#: stock/templates/stock/item_base.html:287
-#: stock/templates/stock/item_base.html:295
-#: stock/templates/stock/item_base.html:342
+#: stock/templates/stock/item_base.html:283
+#: stock/templates/stock/item_base.html:291
+#: stock/templates/stock/item_base.html:338
#: 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:525
@@ -1194,41 +1194,41 @@ msgstr ""
msgid "Quantity"
msgstr ""
-#: build/models.py:1506
+#: build/models.py:1517
msgid "Required quantity for build order"
msgstr ""
-#: build/models.py:1586
+#: build/models.py:1597
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1595
+#: build/models.py:1606
#, python-brace-format
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1605 order/models.py:1985
+#: build/models.py:1616 order/models.py:1985
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1611 order/models.py:1988
+#: build/models.py:1622 order/models.py:1988
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1617
+#: build/models.py:1628
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1676
+#: build/models.py:1687
msgid "Selected stock item does not match BOM line"
msgstr ""
-#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301
+#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301
#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94
#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400
#: stock/templates/stock/item_base.html:10
#: stock/templates/stock/item_base.html:23
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:190
#: templates/js/translated/build.js:1921
#: templates/js/translated/sales_order.js:301
#: templates/js/translated/sales_order.js:1234
@@ -1241,19 +1241,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1749
+#: build/models.py:1763
msgid "Source stock item"
msgstr ""
-#: build/models.py:1762
+#: build/models.py:1776
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1770
+#: build/models.py:1784
msgid "Install into"
msgstr ""
-#: build/models.py:1771
+#: build/models.py:1785
msgid "Destination stock item"
msgstr ""
@@ -1262,7 +1262,7 @@ msgid "Build Level"
msgstr ""
#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323
-#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219
+#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219
#: stock/admin.py:157
msgid "Part Name"
msgstr ""
@@ -1323,10 +1323,10 @@ msgid "Enter serial numbers for build outputs"
msgstr ""
#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572
-#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1789
-#: part/serializers.py:1233 stock/serializers.py:103 stock/serializers.py:698
+#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797
+#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698
#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432
-#: stock/serializers.py:1688 stock/templates/stock/item_base.html:394
+#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390
#: templates/js/translated/barcode.js:578
#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035
#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547
@@ -1390,7 +1390,7 @@ msgstr ""
#: build/templates/build/detail.html:62 order/models.py:477
#: order/models.py:1003 order/models.py:2152 order/serializers.py:687
#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576
-#: stock/templates/stock/item_base.html:427
+#: stock/templates/stock/item_base.html:423
#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366
#: templates/js/translated/purchase_order.js:1371
#: templates/js/translated/purchase_order.js:1792
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:1030 order/serializers.py:1614
+#: build/serializers.py:1030 order/serializers.py:1622
msgid "Allocation items must be provided"
msgstr ""
@@ -1590,7 +1590,7 @@ msgstr ""
#: build/serializers.py:1230 company/models.py:849
#: company/templates/company/supplier_part.html:160 order/serializers.py:691
#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586
-#: stock/templates/stock/item_base.html:240
+#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:1646
#: templates/js/translated/purchase_order.js:1169
#: templates/js/translated/purchase_order.js:1332
@@ -1600,12 +1600,12 @@ msgid "Packaging"
msgstr ""
#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398
-#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153
+#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153
msgid "Part ID"
msgstr ""
#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN"
msgstr ""
@@ -1625,7 +1625,7 @@ msgstr ""
#: build/serializers.py:1243
#: report/templates/report/inventree_return_order_report.html:25
#: report/templates/report/inventree_test_report.html:88 stock/models.py:849
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:311
+#: stock/serializers.py:152 stock/templates/stock/item_base.html:307
#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543
#: templates/js/translated/build.js:2530
#: templates/js/translated/model_renderers.js:231
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Allocated Quantity"
msgstr ""
-#: build/serializers.py:1257 stock/templates/stock/item_base.html:340
+#: build/serializers.py:1257 stock/templates/stock/item_base.html:336
msgid "Available Quantity"
msgstr ""
@@ -1667,13 +1667,13 @@ msgstr ""
msgid "Inherited"
msgstr ""
-#: build/serializers.py:1337 part/models.py:4326
+#: build/serializers.py:1337 part/models.py:4313
#: 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:1341 part/models.py:4124 part/models.py:4594
+#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587
#: stock/api.py:793
msgid "BOM Item"
msgstr ""
@@ -1684,7 +1684,7 @@ msgid "Allocated Stock"
msgstr ""
#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132
-#: part/bom.py:186 part/serializers.py:920 part/serializers.py:1623
+#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621
#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208
#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712
#: templates/js/translated/part.js:2155
@@ -1692,13 +1692,13 @@ msgstr ""
msgid "On Order"
msgstr ""
-#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1625
+#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623
#: templates/js/translated/build.js:2811
#: templates/js/translated/table_filters.js:367
msgid "In Production"
msgstr ""
-#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1650
+#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648
#: part/templates/part/part_base.html:192
#: templates/js/translated/sales_order.js:1929
msgid "Available Stock"
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "Total Available Stock"
msgstr ""
-#: build/serializers.py:1372 part/serializers.py:927
+#: build/serializers.py:1372 part/serializers.py:925
msgid "External Stock"
msgstr ""
@@ -1745,7 +1745,7 @@ msgstr ""
#: importer/status_codes.py:27 order/status_codes.py:15
#: order/status_codes.py:50 order/status_codes.py:81
#: order/templates/order/order_base.html:163
-#: order/templates/order/sales_order_base.html:168 report/models.py:443
+#: order/templates/order/sales_order_base.html:168 report/models.py:451
msgid "Complete"
msgstr ""
@@ -1849,9 +1849,6 @@ msgid "Delete Build"
msgstr ""
#: build/templates/build/build_base.html:87
-msgid "Isueue Build"
-msgstr ""
-
#: build/templates/build/build_base.html:88
msgid "Issue Build"
msgstr ""
@@ -1931,7 +1928,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:365
#: templates/email/overdue_sales_order.html:15
#: templates/js/translated/pricing.js:929
#: templates/js/translated/sales_order.js:805
@@ -1991,7 +1988,7 @@ msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:80 stock/admin.py:163
-#: stock/templates/stock/item_base.html:162
+#: stock/templates/stock/item_base.html:158
#: templates/js/translated/build.js:1556
#: templates/js/translated/model_renderers.js:242
#: templates/js/translated/purchase_order.js:1326
@@ -2148,19 +2145,19 @@ msgstr ""
msgid "Test Statistics"
msgstr ""
-#: common/api.py:692
+#: common/api.py:725
msgid "Is Link"
msgstr ""
-#: common/api.py:700
+#: common/api.py:733
msgid "Is File"
msgstr ""
-#: common/api.py:743
+#: common/api.py:776
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:760
+#: common/api.py:793
msgid "User does not have permission to delete this attachment"
msgstr ""
@@ -2352,8 +2349,8 @@ msgstr ""
#: common/models.py:1297 common/models.py:1353 common/models.py:1366
#: common/models.py:1374 common/models.py:1383 common/models.py:1392
-#: common/models.py:1629 common/models.py:1651 common/models.py:1766
-#: common/models.py:2148
+#: common/models.py:1629 common/models.py:1651 common/models.py:1752
+#: common/models.py:2141
msgid "days"
msgstr ""
@@ -2581,9 +2578,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1485 part/admin.py:108 part/models.py:3959
-#: report/models.py:293 report/models.py:360 report/serializers.py:90
-#: report/serializers.py:131 stock/serializers.py:233
+#: common/models.py:1485 part/admin.py:108 part/models.py:3946
+#: report/models.py:301 report/models.py:368 report/serializers.py:91
+#: report/serializers.py:132 stock/serializers.py:233
#: templates/js/translated/table_filters.js:138
#: templates/js/translated/table_filters.js:775
msgid "Template"
@@ -2598,7 +2595,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:1497 part/admin.py:95 part/models.py:1172
-#: part/serializers.py:1617 templates/js/translated/table_filters.js:737
+#: part/serializers.py:1615 templates/js/translated/table_filters.js:737
msgid "Component"
msgstr ""
@@ -2823,7 +2820,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28
-#: report/models.py:301
+#: report/models.py:309
msgid "Page Size"
msgstr ""
@@ -2832,914 +2829,914 @@ msgid "Default page size for PDF reports"
msgstr ""
#: common/models.py:1708
-msgid "Enable Test Reports"
-msgstr ""
-
-#: common/models.py:1709
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:1714
-msgid "Attach Test Reports"
-msgstr ""
-
-#: common/models.py:1716
-msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
-msgstr ""
-
-#: common/models.py:1722
msgid "Globally Unique Serials"
msgstr ""
-#: common/models.py:1723
+#: common/models.py:1709
msgid "Serial numbers for stock items must be globally unique"
msgstr ""
-#: common/models.py:1728
+#: common/models.py:1714
msgid "Autofill Serial Numbers"
msgstr ""
-#: common/models.py:1729
+#: common/models.py:1715
msgid "Autofill serial numbers in forms"
msgstr ""
-#: common/models.py:1734
+#: common/models.py:1720
msgid "Delete Depleted Stock"
msgstr ""
-#: common/models.py:1736
+#: common/models.py:1722
msgid "Determines default behavior when a stock item is depleted"
msgstr ""
-#: common/models.py:1742
+#: common/models.py:1728
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1744
+#: common/models.py:1730
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1749
+#: common/models.py:1735
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1750
+#: common/models.py:1736
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1755
+#: common/models.py:1741
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1756
+#: common/models.py:1742
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1761
+#: common/models.py:1747
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1763
+#: common/models.py:1749
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1770
+#: common/models.py:1756
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1771
+#: common/models.py:1757
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1776
+#: common/models.py:1762
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1777
+#: common/models.py:1763
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1782
+#: common/models.py:1768
msgid "Stock Location Default Icon"
msgstr ""
-#: common/models.py:1783
+#: common/models.py:1769
msgid "Stock location default icon (empty means no icon)"
msgstr ""
-#: common/models.py:1788
+#: common/models.py:1774
msgid "Show Installed Stock Items"
msgstr ""
-#: common/models.py:1789
+#: common/models.py:1775
msgid "Display installed stock items in stock tables"
msgstr ""
-#: common/models.py:1794
+#: common/models.py:1780
msgid "Check BOM when installing items"
msgstr ""
-#: common/models.py:1796
+#: common/models.py:1782
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
-#: common/models.py:1802
+#: common/models.py:1788
msgid "Allow Out of Stock Transfer"
msgstr ""
-#: common/models.py:1804
+#: common/models.py:1790
msgid "Allow stock items which are not in stock to be transferred between stock locations"
msgstr ""
-#: common/models.py:1810
+#: common/models.py:1796
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1812
+#: common/models.py:1798
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1818 common/models.py:1874 common/models.py:1896
-#: common/models.py:1932
+#: common/models.py:1804 common/models.py:1860 common/models.py:1882
+#: common/models.py:1918
msgid "Require Responsible Owner"
msgstr ""
-#: common/models.py:1819 common/models.py:1875 common/models.py:1897
-#: common/models.py:1933
+#: common/models.py:1805 common/models.py:1861 common/models.py:1883
+#: common/models.py:1919
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/models.py:1824
+#: common/models.py:1810
msgid "Require Active Part"
msgstr ""
-#: common/models.py:1825
+#: common/models.py:1811
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/models.py:1830
+#: common/models.py:1816
msgid "Require Locked Part"
msgstr ""
-#: common/models.py:1831
+#: common/models.py:1817
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/models.py:1836
+#: common/models.py:1822
msgid "Require Valid BOM"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1824
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/models.py:1844
+#: common/models.py:1830
msgid "Require Closed Child Orders"
msgstr ""
-#: common/models.py:1846
+#: common/models.py:1832
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/models.py:1852
+#: common/models.py:1838
msgid "Block Until Tests Pass"
msgstr ""
-#: common/models.py:1854
+#: common/models.py:1840
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/models.py:1860
+#: common/models.py:1846
msgid "Enable Return Orders"
msgstr ""
-#: common/models.py:1861
+#: common/models.py:1847
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/models.py:1866
+#: common/models.py:1852
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1854
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/models.py:1880
+#: common/models.py:1866
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/models.py:1882
+#: common/models.py:1868
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/models.py:1888
+#: common/models.py:1874
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1890
+#: common/models.py:1876
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1902
+#: common/models.py:1888
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1903
+#: common/models.py:1889
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1908
+#: common/models.py:1894
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/models.py:1910
+#: common/models.py:1896
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1916
+#: common/models.py:1902
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/models.py:1918
+#: common/models.py:1904
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/models.py:1924
+#: common/models.py:1910
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1926
+#: common/models.py:1912
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1938
+#: common/models.py:1924
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/models.py:1940
+#: common/models.py:1926
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/models.py:1946
+#: common/models.py:1932
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/models.py:1948
+#: common/models.py:1934
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/models.py:1955
+#: common/models.py:1941
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1956
+#: common/models.py:1942
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1961
+#: common/models.py:1947
msgid "Enable registration"
msgstr ""
-#: common/models.py:1962
+#: common/models.py:1948
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1967
+#: common/models.py:1953
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1968
+#: common/models.py:1954
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1973
+#: common/models.py:1959
msgid "Enable SSO registration"
msgstr ""
-#: common/models.py:1975
+#: common/models.py:1961
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/models.py:1981
+#: common/models.py:1967
msgid "Enable SSO group sync"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1969
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/models.py:1989
+#: common/models.py:1975
msgid "SSO group key"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:1977
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/models.py:1997
+#: common/models.py:1983
msgid "SSO group map"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:1985
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:2005
+#: common/models.py:1991
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:1993
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:2013
+#: common/models.py:1999
msgid "Email required"
msgstr ""
-#: common/models.py:2014
+#: common/models.py:2000
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:2019
+#: common/models.py:2005
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2007
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2013
msgid "Mail twice"
msgstr ""
-#: common/models.py:2028
+#: common/models.py:2014
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:2033
+#: common/models.py:2019
msgid "Password twice"
msgstr ""
-#: common/models.py:2034
+#: common/models.py:2020
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:2039
+#: common/models.py:2025
msgid "Allowed domains"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2027
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/models.py:2047
+#: common/models.py:2033
msgid "Group on signup"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2035
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:2055
+#: common/models.py:2041
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:2056
+#: common/models.py:2042
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:2061
+#: common/models.py:2047
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:2063
+#: common/models.py:2049
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/models.py:2071
+#: common/models.py:2057
msgid "Check for plugin updates"
msgstr ""
-#: common/models.py:2072
+#: common/models.py:2058
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/models.py:2078
+#: common/models.py:2064
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:2079
+#: common/models.py:2065
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:2085
+#: common/models.py:2071
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:2086
+#: common/models.py:2072
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:2092
+#: common/models.py:2078
msgid "Enable app integration"
msgstr ""
-#: common/models.py:2093
+#: common/models.py:2079
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:2099
+#: common/models.py:2085
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:2100
+#: common/models.py:2086
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:2106
+#: common/models.py:2092
msgid "Enable event integration"
msgstr ""
-#: common/models.py:2107
+#: common/models.py:2093
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:2113
+#: common/models.py:2099
+msgid "Enable interface integration"
+msgstr ""
+
+#: common/models.py:2100
+msgid "Enable plugins to integrate into the user interface"
+msgstr ""
+
+#: common/models.py:2106
msgid "Enable project codes"
msgstr ""
-#: common/models.py:2114
+#: common/models.py:2107
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/models.py:2119
+#: common/models.py:2112
msgid "Stocktake Functionality"
msgstr ""
-#: common/models.py:2121
+#: common/models.py:2114
msgid "Enable stocktake functionality for recording stock levels and calculating stock value"
msgstr ""
-#: common/models.py:2127
+#: common/models.py:2120
msgid "Exclude External Locations"
msgstr ""
-#: common/models.py:2129
+#: common/models.py:2122
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/models.py:2135
+#: common/models.py:2128
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/models.py:2137
+#: common/models.py:2130
msgid "Number of days between automatic stocktake recording (set to zero to disable)"
msgstr ""
-#: common/models.py:2143
+#: common/models.py:2136
msgid "Report Deletion Interval"
msgstr ""
-#: common/models.py:2145
+#: common/models.py:2138
msgid "Stocktake reports will be deleted after specified number of days"
msgstr ""
-#: common/models.py:2152
+#: common/models.py:2145
msgid "Display Users full names"
msgstr ""
-#: common/models.py:2153
+#: common/models.py:2146
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/models.py:2158
+#: common/models.py:2151
msgid "Enable Test Station Data"
msgstr ""
-#: common/models.py:2159
+#: common/models.py:2152
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/models.py:2171 common/models.py:2551
+#: common/models.py:2157
+msgid "Create Template on Upload"
+msgstr ""
+
+#: common/models.py:2159
+msgid "Create a new test template when uploading test data which does not match an existing template"
+msgstr ""
+
+#: common/models.py:2172 common/models.py:2552
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:2214
+#: common/models.py:2215
msgid "Hide inactive parts"
msgstr ""
-#: common/models.py:2216
+#: common/models.py:2217
msgid "Hide inactive parts in results displayed on the homepage"
msgstr ""
-#: common/models.py:2222
+#: common/models.py:2223
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:2223
+#: common/models.py:2224
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:2228
+#: common/models.py:2229
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:2229
+#: common/models.py:2230
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:2234
+#: common/models.py:2235
msgid "Show latest parts"
msgstr ""
-#: common/models.py:2235
+#: common/models.py:2236
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:2240
+#: common/models.py:2241
msgid "Show invalid BOMs"
msgstr ""
-#: common/models.py:2241
+#: common/models.py:2242
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:2246
+#: common/models.py:2247
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:2247
+#: common/models.py:2248
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:2252
+#: common/models.py:2253
msgid "Show low stock"
msgstr ""
-#: common/models.py:2253
+#: common/models.py:2254
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:2258
+#: common/models.py:2259
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:2259
+#: common/models.py:2260
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:2264
+#: common/models.py:2265
msgid "Show needed stock"
msgstr ""
-#: common/models.py:2265
+#: common/models.py:2266
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:2270
+#: common/models.py:2271
msgid "Show expired stock"
msgstr ""
-#: common/models.py:2271
+#: common/models.py:2272
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:2276
+#: common/models.py:2277
msgid "Show stale stock"
msgstr ""
-#: common/models.py:2277
+#: common/models.py:2278
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:2282
+#: common/models.py:2283
msgid "Show pending builds"
msgstr ""
-#: common/models.py:2283
+#: common/models.py:2284
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:2288
+#: common/models.py:2289
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:2289
+#: common/models.py:2290
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:2294
+#: common/models.py:2295
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:2295
+#: common/models.py:2296
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:2300
+#: common/models.py:2301
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:2301
+#: common/models.py:2302
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:2306
+#: common/models.py:2307
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:2307
+#: common/models.py:2308
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:2312
+#: common/models.py:2313
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:2313
+#: common/models.py:2314
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:2318
+#: common/models.py:2319
msgid "Show pending SO shipments"
msgstr ""
-#: common/models.py:2319
+#: common/models.py:2320
msgid "Show pending SO shipments on the homepage"
msgstr ""
-#: common/models.py:2324
+#: common/models.py:2325
msgid "Show News"
msgstr ""
-#: common/models.py:2325
+#: common/models.py:2326
msgid "Show news on the homepage"
msgstr ""
-#: common/models.py:2330
+#: common/models.py:2331
msgid "Inline label display"
msgstr ""
-#: common/models.py:2332
+#: common/models.py:2333
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2338
+#: common/models.py:2339
msgid "Default label printer"
msgstr ""
-#: common/models.py:2340
+#: common/models.py:2341
msgid "Configure which label printer should be selected by default"
msgstr ""
-#: common/models.py:2346
+#: common/models.py:2347
msgid "Inline report display"
msgstr ""
-#: common/models.py:2348
+#: common/models.py:2349
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:2354
+#: common/models.py:2355
msgid "Search Parts"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2356
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:2360
+#: common/models.py:2361
msgid "Search Supplier Parts"
msgstr ""
-#: common/models.py:2361
+#: common/models.py:2362
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:2366
+#: common/models.py:2367
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:2367
+#: common/models.py:2368
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:2372
+#: common/models.py:2373
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:2373
+#: common/models.py:2374
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:2378
+#: common/models.py:2379
msgid "Search Categories"
msgstr ""
-#: common/models.py:2379
+#: common/models.py:2380
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:2384
+#: common/models.py:2385
msgid "Search Stock"
msgstr ""
-#: common/models.py:2385
+#: common/models.py:2386
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:2390
+#: common/models.py:2391
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:2392
+#: common/models.py:2393
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:2398
+#: common/models.py:2399
msgid "Search Locations"
msgstr ""
-#: common/models.py:2399
+#: common/models.py:2400
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:2404
+#: common/models.py:2405
msgid "Search Companies"
msgstr ""
-#: common/models.py:2405
+#: common/models.py:2406
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:2410
+#: common/models.py:2411
msgid "Search Build Orders"
msgstr ""
-#: common/models.py:2411
+#: common/models.py:2412
msgid "Display build orders in search preview window"
msgstr ""
-#: common/models.py:2416
+#: common/models.py:2417
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:2417
+#: common/models.py:2418
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:2422
+#: common/models.py:2423
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:2424
+#: common/models.py:2425
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:2430
+#: common/models.py:2431
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:2431
+#: common/models.py:2432
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:2436
+#: common/models.py:2437
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:2438
+#: common/models.py:2439
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:2444
+#: common/models.py:2445
msgid "Search Return Orders"
msgstr ""
-#: common/models.py:2445
+#: common/models.py:2446
msgid "Display return orders in search preview window"
msgstr ""
-#: common/models.py:2450
+#: common/models.py:2451
msgid "Exclude Inactive Return Orders"
msgstr ""
-#: common/models.py:2452
+#: common/models.py:2453
msgid "Exclude inactive return orders from search preview window"
msgstr ""
-#: common/models.py:2458
+#: common/models.py:2459
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:2460
+#: common/models.py:2461
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:2466
+#: common/models.py:2467
msgid "Regex Search"
msgstr ""
-#: common/models.py:2467
+#: common/models.py:2468
msgid "Enable regular expressions in search queries"
msgstr ""
-#: common/models.py:2472
+#: common/models.py:2473
msgid "Whole Word Search"
msgstr ""
-#: common/models.py:2473
+#: common/models.py:2474
msgid "Search queries return results for whole word matches"
msgstr ""
-#: common/models.py:2478
+#: common/models.py:2479
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:2479
+#: common/models.py:2480
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:2484
+#: common/models.py:2485
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:2485
+#: common/models.py:2486
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:2490
+#: common/models.py:2491
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:2491
+#: common/models.py:2492
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:2496
+#: common/models.py:2497
msgid "Date Format"
msgstr ""
-#: common/models.py:2497
+#: common/models.py:2498
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:2510 part/templates/part/detail.html:41
+#: common/models.py:2511 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:2511
+#: common/models.py:2512
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:2516 part/templates/part/detail.html:62
+#: common/models.py:2517 part/templates/part/detail.html:62
msgid "Part Stocktake"
msgstr ""
-#: common/models.py:2518
+#: common/models.py:2519
msgid "Display part stocktake information (if stocktake functionality is enabled)"
msgstr ""
-#: common/models.py:2524
+#: common/models.py:2525
msgid "Table String Length"
msgstr ""
-#: common/models.py:2526
+#: common/models.py:2527
msgid "Maximum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:2532
+#: common/models.py:2533
msgid "Receive error reports"
msgstr ""
-#: common/models.py:2533
+#: common/models.py:2534
msgid "Receive notifications for system errors"
msgstr ""
-#: common/models.py:2538
+#: common/models.py:2539
msgid "Last used printing machines"
msgstr ""
-#: common/models.py:2539
+#: common/models.py:2540
msgid "Save the last used printing machines for a user"
msgstr ""
-#: common/models.py:2559 common/models.py:2560 common/models.py:2717
-#: common/models.py:2718 common/models.py:2963 common/models.py:2964
-#: common/models.py:3287 common/models.py:3288 importer/models.py:89
-#: part/models.py:3319 part/models.py:3406 part/models.py:3480
-#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275
+#: common/models.py:2560 common/models.py:2561 common/models.py:2718
+#: common/models.py:2719 common/models.py:2964 common/models.py:2965
+#: common/models.py:3288 common/models.py:3289 importer/models.py:89
+#: part/models.py:3306 part/models.py:3393 part/models.py:3467
+#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275
#: report/templates/report/inventree_test_report.html:105
#: templates/js/translated/stock.js:3121 users/models.py:111
msgid "User"
msgstr ""
-#: common/models.py:2582
+#: common/models.py:2583
msgid "Price break quantity"
msgstr ""
-#: common/models.py:2589 company/serializers.py:517 order/admin.py:42
+#: common/models.py:2590 company/serializers.py:517 order/admin.py:42
#: order/models.py:1423 order/models.py:2410
#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892
#: templates/js/translated/pricing.js:621
@@ -3747,96 +3744,96 @@ msgstr ""
msgid "Price"
msgstr ""
-#: common/models.py:2590
+#: common/models.py:2591
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2694 common/models.py:2879
+#: common/models.py:2695 common/models.py:2880
msgid "Endpoint"
msgstr ""
-#: common/models.py:2695
+#: common/models.py:2696
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2705
+#: common/models.py:2706
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2709
+#: common/models.py:2710
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2725 users/models.py:159
+#: common/models.py:2726 users/models.py:159
msgid "Token"
msgstr ""
-#: common/models.py:2726
+#: common/models.py:2727
msgid "Token for access"
msgstr ""
-#: common/models.py:2734
+#: common/models.py:2735
msgid "Secret"
msgstr ""
-#: common/models.py:2735
+#: common/models.py:2736
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2843
+#: common/models.py:2844
msgid "Message ID"
msgstr ""
-#: common/models.py:2844
+#: common/models.py:2845
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2852
+#: common/models.py:2853
msgid "Host"
msgstr ""
-#: common/models.py:2853
+#: common/models.py:2854
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2861
+#: common/models.py:2862
msgid "Header"
msgstr ""
-#: common/models.py:2862
+#: common/models.py:2863
msgid "Header of this message"
msgstr ""
-#: common/models.py:2869
+#: common/models.py:2870
msgid "Body"
msgstr ""
-#: common/models.py:2870
+#: common/models.py:2871
msgid "Body of this message"
msgstr ""
-#: common/models.py:2880
+#: common/models.py:2881
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2885
+#: common/models.py:2886
msgid "Worked on"
msgstr ""
-#: common/models.py:2886
+#: common/models.py:2887
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:3012
+#: common/models.py:3013
msgid "Id"
msgstr ""
-#: common/models.py:3014 templates/js/translated/company.js:965
+#: common/models.py:3015 templates/js/translated/company.js:965
#: templates/js/translated/news.js:44
msgid "Title"
msgstr ""
-#: common/models.py:3016 common/models.py:3271 company/models.py:146
+#: common/models.py:3017 common/models.py:3272 company/models.py:146
#: company/models.py:443 company/models.py:509 company/models.py:815
#: order/models.py:303 order/models.py:1378 order/models.py:1810
#: part/admin.py:55 part/models.py:1069
@@ -3853,217 +3850,217 @@ msgstr ""
msgid "Link"
msgstr ""
-#: common/models.py:3018 templates/js/translated/news.js:60
+#: common/models.py:3019 templates/js/translated/news.js:60
msgid "Published"
msgstr ""
-#: common/models.py:3020 templates/InvenTree/settings/plugin_settings.html:32
+#: common/models.py:3021 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:3022 templates/js/translated/news.js:52
+#: common/models.py:3023 templates/js/translated/news.js:52
msgid "Summary"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Read"
msgstr ""
-#: common/models.py:3025
+#: common/models.py:3026
msgid "Was this news item read?"
msgstr ""
-#: common/models.py:3042 company/models.py:156 part/models.py:1079
+#: common/models.py:3043 company/models.py:156 part/models.py:1079
#: 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
-#: stock/templates/stock/item_base.html:133 templates/503.html:31
+#: stock/templates/stock/item_base.html:129 templates/503.html:31
#: templates/hover_image.html:7 templates/hover_image.html:9
#: templates/modals.html:6
msgid "Image"
msgstr ""
-#: common/models.py:3042
+#: common/models.py:3043
msgid "Image file"
msgstr ""
-#: common/models.py:3054 common/models.py:3255
+#: common/models.py:3055 common/models.py:3256
msgid "Target model type for this image"
msgstr ""
-#: common/models.py:3058
+#: common/models.py:3059
msgid "Target model ID for this image"
msgstr ""
-#: common/models.py:3080
+#: common/models.py:3081
msgid "Custom Unit"
msgstr ""
-#: common/models.py:3098
+#: common/models.py:3099
msgid "Unit symbol must be unique"
msgstr ""
-#: common/models.py:3113
+#: common/models.py:3114
msgid "Unit name must be a valid identifier"
msgstr ""
-#: common/models.py:3132
+#: common/models.py:3133
msgid "Unit name"
msgstr ""
-#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:75
+#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75
msgid "Symbol"
msgstr ""
-#: common/models.py:3140
+#: common/models.py:3141
msgid "Optional unit symbol"
msgstr ""
-#: common/models.py:3146 templates/InvenTree/settings/settings_staff_js.html:71
+#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71
msgid "Definition"
msgstr ""
-#: common/models.py:3147
+#: common/models.py:3148
msgid "Unit definition"
msgstr ""
-#: common/models.py:3205 common/models.py:3262 stock/models.py:2552
+#: common/models.py:3206 common/models.py:3263 stock/models.py:2547
#: stock/serializers.py:244 templates/js/translated/attachment.js:119
#: templates/js/translated/attachment.js:345
msgid "Attachment"
msgstr ""
-#: common/models.py:3217
+#: common/models.py:3218
msgid "Missing file"
msgstr ""
-#: common/models.py:3218
+#: common/models.py:3219
msgid "Missing external link"
msgstr ""
-#: common/models.py:3263
+#: common/models.py:3264
msgid "Select file to attach"
msgstr ""
-#: common/models.py:3278 templates/js/translated/attachment.js:120
+#: common/models.py:3279 templates/js/translated/attachment.js:120
#: templates/js/translated/attachment.js:360
msgid "Comment"
msgstr ""
-#: common/models.py:3279
+#: common/models.py:3280
msgid "Attachment comment"
msgstr ""
-#: common/models.py:3295
+#: common/models.py:3296
msgid "Upload date"
msgstr ""
-#: common/models.py:3296
+#: common/models.py:3297
msgid "Date the file was uploaded"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size"
msgstr ""
-#: common/models.py:3300
+#: common/models.py:3301
msgid "File size in bytes"
msgstr ""
-#: common/models.py:3338 common/serializers.py:588
+#: common/models.py:3339 common/serializers.py:604
msgid "Invalid model type specified for attachment"
msgstr ""
-#: common/models.py:3347 plugin/models.py:43 users/models.py:100
+#: common/models.py:3348 plugin/models.py:43 users/models.py:100
msgid "Key"
msgstr ""
-#: common/models.py:3348
+#: common/models.py:3349
msgid "Value that will be saved in the models database"
msgstr ""
-#: common/models.py:3351
+#: common/models.py:3352
msgid "Name of the state"
msgstr ""
-#: common/models.py:3355
+#: common/models.py:3356
msgid "Label"
msgstr ""
-#: common/models.py:3356
+#: common/models.py:3357
msgid "Label that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3362
+#: common/models.py:3363
msgid "Color"
msgstr ""
-#: common/models.py:3363
+#: common/models.py:3364
msgid "Color that will be displayed in the frontend"
msgstr ""
-#: common/models.py:3366
+#: common/models.py:3367
msgid "Logical Key"
msgstr ""
-#: common/models.py:3368
+#: common/models.py:3369
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
-#: common/models.py:3376
+#: common/models.py:3377
msgid "Model"
msgstr ""
-#: common/models.py:3377
+#: common/models.py:3378
msgid "Model this state is associated with"
msgstr ""
-#: common/models.py:3381
+#: common/models.py:3382
msgid "Reference Status Set"
msgstr ""
-#: common/models.py:3382
+#: common/models.py:3383
msgid "Status set that is extended with this custom state"
msgstr ""
-#: common/models.py:3388
+#: common/models.py:3389
msgid "Custom State"
msgstr ""
-#: common/models.py:3389
+#: common/models.py:3390
msgid "Custom States"
msgstr ""
-#: common/models.py:3404
+#: common/models.py:3405
msgid "Model must be selected"
msgstr ""
-#: common/models.py:3407
+#: common/models.py:3408
msgid "Key must be selected"
msgstr ""
-#: common/models.py:3410
+#: common/models.py:3411
msgid "Logical key must be selected"
msgstr ""
-#: common/models.py:3414
+#: common/models.py:3415
msgid "Key must be different from logical key"
msgstr ""
-#: common/models.py:3418
+#: common/models.py:3419
msgid "Reference status must be selected"
msgstr ""
-#: common/models.py:3430
+#: common/models.py:3431
msgid "Reference status set not found"
msgstr ""
-#: common/models.py:3436
+#: common/models.py:3437
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
-#: common/models.py:3442
+#: common/models.py:3443
msgid "Logical key must be in the logical keys of the reference status"
msgstr ""
@@ -4101,75 +4098,75 @@ msgstr ""
msgid "Error raised by plugin"
msgstr ""
-#: common/serializers.py:402
+#: common/serializers.py:418
msgid "Is Running"
msgstr ""
-#: common/serializers.py:408
+#: common/serializers.py:424
msgid "Pending Tasks"
msgstr ""
-#: common/serializers.py:414
+#: common/serializers.py:430
msgid "Scheduled Tasks"
msgstr ""
-#: common/serializers.py:420
+#: common/serializers.py:436
msgid "Failed Tasks"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Task ID"
msgstr ""
-#: common/serializers.py:435
+#: common/serializers.py:451
msgid "Unique task ID"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock"
msgstr ""
-#: common/serializers.py:437
+#: common/serializers.py:453
msgid "Lock time"
msgstr ""
-#: common/serializers.py:439
+#: common/serializers.py:455
msgid "Task name"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function"
msgstr ""
-#: common/serializers.py:441
+#: common/serializers.py:457
msgid "Function name"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Arguments"
msgstr ""
-#: common/serializers.py:443
+#: common/serializers.py:459
msgid "Task arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Keyword Arguments"
msgstr ""
-#: common/serializers.py:446
+#: common/serializers.py:462
msgid "Task keyword arguments"
msgstr ""
-#: common/serializers.py:556
+#: common/serializers.py:572
msgid "Filename"
msgstr ""
-#: common/serializers.py:563 report/api.py:100 report/serializers.py:53
+#: common/serializers.py:579 report/api.py:100 report/serializers.py:54
msgid "Model Type"
msgstr ""
-#: common/serializers.py:591
+#: common/serializers.py:607
msgid "User does not have permission to create or edit attachments for this model"
msgstr ""
@@ -4447,12 +4444,12 @@ msgstr ""
#: company/models.py:467 company/models.py:584 company/models.py:808
#: company/templates/company/manufacturer_part.html:7
#: company/templates/company/manufacturer_part.html:24
-#: stock/templates/stock/item_base.html:217
+#: stock/templates/stock/item_base.html:213
msgid "Manufacturer Part"
msgstr ""
#: company/models.py:484 company/models.py:776 stock/models.py:791
-#: stock/serializers.py:452 stock/templates/stock/item_base.html:142
+#: stock/serializers.py:452 stock/templates/stock/item_base.html:138
#: templates/js/translated/bom.js:622
msgid "Base Part"
msgstr ""
@@ -4463,8 +4460,8 @@ msgstr ""
#: company/models.py:495 company/templates/company/company_base.html:82
#: company/templates/company/manufacturer_part.html:90
-#: company/templates/company/supplier_part.html:145 part/serializers.py:567
-#: stock/templates/stock/item_base.html:207
+#: company/templates/company/supplier_part.html:145 part/serializers.py:565
+#: stock/templates/stock/item_base.html:203
#: templates/js/translated/company.js:507
#: templates/js/translated/company.js:1118
#: templates/js/translated/company.js:1296
@@ -4479,7 +4476,7 @@ msgstr ""
#: company/models.py:502 company/templates/company/manufacturer_part.html:101
#: company/templates/company/supplier_part.html:153 order/serializers.py:557
-#: part/serializers.py:577 templates/js/translated/company.js:351
+#: part/serializers.py:575 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:1807
@@ -4505,7 +4502,7 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:597 report/templates/report/inventree_test_report.html:104
-#: stock/models.py:2544 templates/js/translated/company.js:1166
+#: stock/models.py:2539 templates/js/translated/company.js:1166
#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499
#: templates/js/translated/stock.js:1607
msgid "Value"
@@ -4516,7 +4513,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:605 company/templates/company/supplier_part.html:168
-#: part/admin.py:57 part/models.py:1159 part/models.py:3783
+#: part/admin.py:57 part/models.py:1159 part/models.py:3770
#: part/templates/part/part_base.html:300
#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518
#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376
@@ -4530,7 +4527,7 @@ msgstr ""
#: company/models.py:659 company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 order/api.py:440
#: order/serializers.py:492 stock/models.py:802
-#: stock/templates/stock/item_base.html:233
+#: stock/templates/stock/item_base.html:229
#: templates/js/translated/build.js:1055
#: templates/js/translated/company.js:1600
#: templates/js/translated/purchase_order.js:752
@@ -4553,9 +4550,9 @@ msgstr ""
#: company/models.py:786 company/templates/company/company_base.html:87
#: company/templates/company/supplier_part.html:129 order/models.py:492
#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314
-#: part/serializers.py:551 plugin/builtin/suppliers/digikey.py:25
+#: part/serializers.py:549 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
+#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220
#: templates/email/overdue_purchase_order.html:16
#: templates/js/translated/company.js:350
#: templates/js/translated/company.js:511
@@ -4570,7 +4567,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:793 part/serializers.py:562
+#: company/models.py:793 part/serializers.py:560
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4591,7 +4588,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:832 company/templates/company/supplier_part.html:187
-#: order/serializers.py:699 part/admin.py:415 part/models.py:4301
+#: order/serializers.py:699 part/admin.py:415 part/models.py:4288
#: 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
@@ -4603,11 +4600,11 @@ msgstr ""
msgid "Note"
msgstr ""
-#: company/models.py:841 part/models.py:2129
+#: company/models.py:841 part/models.py:2128
msgid "base cost"
msgstr ""
-#: company/models.py:842 part/models.py:2130
+#: company/models.py:842 part/models.py:2129
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -4629,7 +4626,7 @@ msgstr ""
msgid "Total quantity supplied in a single pack. Leave empty for single items."
msgstr ""
-#: company/models.py:876 part/models.py:2136
+#: company/models.py:876 part/models.py:2135
msgid "multiple"
msgstr ""
@@ -4661,7 +4658,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:397 part/admin.py:126 part/serializers.py:919
+#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917
#: part/templates/part/part_base.html:197
#: templates/js/translated/company.js:1689
#: templates/js/translated/table_filters.js:362
@@ -4735,7 +4732,7 @@ msgstr ""
#: order/models.py:2140 order/templates/order/return_order_base.html:134
#: order/templates/order/sales_order_base.html:151 stock/models.py:844
#: stock/models.py:845 stock/serializers.py:1336
-#: stock/templates/stock/item_base.html:405
+#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:503
#: templates/js/translated/return_order.js:295
@@ -4939,7 +4936,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:925
+#: part/admin.py:122 part/serializers.py:923
#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190
#: templates/navbar.html:48
msgid "Suppliers"
@@ -5030,7 +5027,7 @@ msgid "No supplier information available"
msgstr ""
#: company/templates/company/supplier_part.html:139 order/serializers.py:554
-#: part/bom.py:286 part/bom.py:315 part/serializers.py:561
+#: part/bom.py:286 part/bom.py:315 part/serializers.py:559
#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793
#: templates/js/translated/pricing.js:510
#: templates/js/translated/purchase_order.js:1920
@@ -5084,7 +5081,7 @@ msgid "Update Part Availability"
msgstr ""
#: company/templates/company/supplier_part_sidebar.html:5
-#: part/serializers.py:923 part/stocktake.py:223
+#: part/serializers.py:921 part/stocktake.py:223
#: part/templates/part/category.html:180
#: part/templates/part/category_sidebar.html:17 stock/admin.py:68
#: stock/serializers.py:1021 stock/serializers.py:1199
@@ -5215,7 +5212,7 @@ msgstr ""
msgid "Original row data"
msgstr ""
-#: importer/models.py:504 part/models.py:3965
+#: importer/models.py:504 part/models.py:3952
msgid "Data"
msgstr ""
@@ -5473,7 +5470,7 @@ msgstr ""
#: order/models.py:1592 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:121 stock/templates/stock/item_base.html:176
+#: stock/serializers.py:121 stock/templates/stock/item_base.html:172
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804
#: templates/js/translated/purchase_order.js:168
@@ -5694,7 +5691,7 @@ msgid "Number of items received"
msgstr ""
#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:179
#: templates/js/translated/stock.js:2397
msgid "Purchase Price"
msgstr ""
@@ -5768,7 +5765,7 @@ msgid "User who checked this shipment"
msgstr ""
#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479
-#: order/serializers.py:1589 templates/js/translated/model_renderers.js:455
+#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455
msgid "Shipment"
msgstr ""
@@ -5982,7 +5979,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1790
+#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798
msgid "Select destination location for received items"
msgstr ""
@@ -6019,7 +6016,7 @@ msgstr ""
msgid "An integer quantity must be provided for trackable parts"
msgstr ""
-#: order/serializers.py:795 order/serializers.py:1806
+#: order/serializers.py:795 order/serializers.py:1814
msgid "Line items must be provided"
msgstr ""
@@ -6051,39 +6048,39 @@ msgstr ""
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:1491 order/serializers.py:1597
+#: order/serializers.py:1491 order/serializers.py:1605
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:1494 order/serializers.py:1600
+#: order/serializers.py:1494 order/serializers.py:1608
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:1541
+#: order/serializers.py:1549
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:1548
-msgid "The following serial numbers are already allocated"
+#: order/serializers.py:1556
+msgid "The following serial numbers are unavailable"
msgstr ""
-#: order/serializers.py:1760
+#: order/serializers.py:1768
msgid "Return order line item"
msgstr ""
-#: order/serializers.py:1766
+#: order/serializers.py:1774
msgid "Line item does not match return order"
msgstr ""
-#: order/serializers.py:1769
+#: order/serializers.py:1777
msgid "Line item has already been received"
msgstr ""
-#: order/serializers.py:1798
+#: order/serializers.py:1806
msgid "Items can only be received against orders which are in progress"
msgstr ""
-#: order/serializers.py:1881
+#: order/serializers.py:1889
msgid "Line price currency"
msgstr ""
@@ -6510,7 +6507,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:48 part/models.py:1044 part/serializers.py:908
+#: part/admin.py:48 part/models.py:1044 part/serializers.py:906
#: part/templates/part/part_base.html:276
#: report/templates/report/inventree_stock_location_report.html:103
#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347
@@ -6537,7 +6534,7 @@ msgstr ""
msgid "Category ID"
msgstr ""
-#: part/admin.py:67 part/admin.py:304 part/serializers.py:893
+#: part/admin.py:67 part/admin.py:304 part/serializers.py:891
#: part/stocktake.py:222
msgid "Category Name"
msgstr ""
@@ -6562,18 +6559,18 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/admin.py:150 part/serializers.py:918
+#: part/admin.py:150 part/serializers.py:916
#: part/templates/part/part_base.html:248 stock/admin.py:236
#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159
msgid "Building"
msgstr ""
-#: part/admin.py:155 part/models.py:3214 part/models.py:3228
+#: part/admin.py:155 part/models.py:3201 part/models.py:3215
#: templates/js/translated/part.js:976
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:158 part/models.py:3221 part/models.py:3235
+#: part/admin.py:158 part/models.py:3208 part/models.py:3222
#: templates/js/translated/part.js:986
msgid "Maximum Cost"
msgstr ""
@@ -6592,7 +6589,7 @@ msgid "Category Path"
msgstr ""
#: part/admin.py:325 part/models.py:420 part/serializers.py:130
-#: part/serializers.py:290 part/serializers.py:428
+#: part/serializers.py:290 part/serializers.py:426
#: 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
@@ -6619,13 +6616,13 @@ msgstr ""
msgid "Part Revision"
msgstr ""
-#: part/admin.py:418 part/serializers.py:1367
+#: part/admin.py:418 part/serializers.py:1365
#: templates/js/translated/pricing.js:358
#: templates/js/translated/pricing.js:1024
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:423 part/serializers.py:1382
+#: part/admin.py:423 part/serializers.py:1380
#: templates/js/translated/pricing.js:353
#: templates/js/translated/pricing.js:1032
msgid "Maximum Price"
@@ -6719,8 +6716,8 @@ msgstr ""
msgid "BOM Valid"
msgstr ""
-#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060
-#: part/serializers.py:443 part/serializers.py:1223
+#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047
+#: part/serializers.py:441 part/serializers.py:1221
#: part/templates/part/part_base.html:267 stock/api.py:780
#: templates/InvenTree/settings/settings_staff_js.html:300
#: templates/js/translated/notification.js:60
@@ -6746,7 +6743,7 @@ msgstr ""
msgid "Default Location"
msgstr ""
-#: part/bom.py:184 part/serializers.py:926
+#: part/bom.py:184 part/serializers.py:924
#: templates/email/low_stock_notification.html:16
msgid "Total Stock"
msgstr ""
@@ -6755,7 +6752,7 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16
+#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -6878,7 +6875,7 @@ msgstr ""
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:995 part/models.py:4116
+#: part/models.py:995 part/models.py:4103
msgid "Part name"
msgstr ""
@@ -6906,7 +6903,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1052 part/serializers.py:360
+#: part/models.py:1052
msgid "Part revision or version number"
msgstr ""
@@ -7012,164 +7009,164 @@ msgid "Owner responsible for this part"
msgstr ""
#: part/models.py:1264 part/templates/part/part_base.html:355
-#: stock/templates/stock/item_base.html:451
+#: stock/templates/stock/item_base.html:447
#: templates/js/translated/part.js:2490
msgid "Last Stocktake"
msgstr ""
-#: part/models.py:2137
+#: part/models.py:2136
msgid "Sell multiple"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3115
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:3144
+#: part/models.py:3131
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:3145
+#: part/models.py:3132
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:3151
+#: part/models.py:3138
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:3152
+#: part/models.py:3139
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:3158
+#: part/models.py:3145
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:3159
+#: part/models.py:3146
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:3165
+#: part/models.py:3152
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3153
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:3172
+#: part/models.py:3159
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:3173
+#: part/models.py:3160
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3179
+#: part/models.py:3166
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:3180
+#: part/models.py:3167
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:3186
+#: part/models.py:3173
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:3187
+#: part/models.py:3174
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:3193
+#: part/models.py:3180
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:3194
+#: part/models.py:3181
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:3200
+#: part/models.py:3187
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:3201
+#: part/models.py:3188
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:3207
+#: part/models.py:3194
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:3208
+#: part/models.py:3195
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:3215
+#: part/models.py:3202
msgid "Override minimum cost"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3209
msgid "Override maximum cost"
msgstr ""
-#: part/models.py:3229
+#: part/models.py:3216
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:3236
+#: part/models.py:3223
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:3242
+#: part/models.py:3229
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:3243
+#: part/models.py:3230
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:3249
+#: part/models.py:3236
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:3250
+#: part/models.py:3237
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:3256
+#: part/models.py:3243
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:3257
+#: part/models.py:3244
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3250
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:3264
+#: part/models.py:3251
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3283
+#: part/models.py:3270
msgid "Part for stocktake"
msgstr ""
-#: part/models.py:3288
+#: part/models.py:3275
msgid "Item Count"
msgstr ""
-#: part/models.py:3289
+#: part/models.py:3276
msgid "Number of individual stock entries at time of stocktake"
msgstr ""
-#: part/models.py:3297
+#: part/models.py:3284
msgid "Total available stock at time of stocktake"
msgstr ""
-#: part/models.py:3301 part/models.py:3384
+#: part/models.py:3288 part/models.py:3371
#: part/templates/part/part_scheduling.html:13
#: report/templates/report/inventree_test_report.html:106
#: templates/InvenTree/settings/plugin_settings.html:37
@@ -7181,363 +7178,363 @@ msgstr ""
msgid "Date"
msgstr ""
-#: part/models.py:3302
+#: part/models.py:3289
msgid "Date stocktake was performed"
msgstr ""
-#: part/models.py:3310
+#: part/models.py:3297
msgid "Additional notes"
msgstr ""
-#: part/models.py:3320
+#: part/models.py:3307
msgid "User who performed this stocktake"
msgstr ""
-#: part/models.py:3326
+#: part/models.py:3313
msgid "Minimum Stock Cost"
msgstr ""
-#: part/models.py:3327
+#: part/models.py:3314
msgid "Estimated minimum cost of stock on hand"
msgstr ""
-#: part/models.py:3333
+#: part/models.py:3320
msgid "Maximum Stock Cost"
msgstr ""
-#: part/models.py:3334
+#: part/models.py:3321
msgid "Estimated maximum cost of stock on hand"
msgstr ""
-#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532
+#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532
msgid "Report"
msgstr ""
-#: part/models.py:3391
+#: part/models.py:3378
msgid "Stocktake report file (generated internally)"
msgstr ""
-#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539
+#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539
msgid "Part Count"
msgstr ""
-#: part/models.py:3397
+#: part/models.py:3384
msgid "Number of parts covered by stocktake"
msgstr ""
-#: part/models.py:3407
+#: part/models.py:3394
msgid "User who requested this stocktake report"
msgstr ""
-#: part/models.py:3417
+#: part/models.py:3404
msgid "Part Sale Price Break"
msgstr ""
-#: part/models.py:3529
+#: part/models.py:3516
msgid "Part Test Template"
msgstr ""
-#: part/models.py:3555
+#: part/models.py:3542
msgid "Invalid template name - must include at least one alphanumeric character"
msgstr ""
-#: part/models.py:3576 part/models.py:3745
+#: part/models.py:3563 part/models.py:3732
msgid "Choices must be unique"
msgstr ""
-#: part/models.py:3587
+#: part/models.py:3574
msgid "Test templates can only be created for testable parts"
msgstr ""
-#: part/models.py:3598
+#: part/models.py:3585
msgid "Test template with the same key already exists for part"
msgstr ""
-#: part/models.py:3615 templates/js/translated/part.js:2898
+#: part/models.py:3602 templates/js/translated/part.js:2898
msgid "Test Name"
msgstr ""
-#: part/models.py:3616
+#: part/models.py:3603
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3622
+#: part/models.py:3609
msgid "Test Key"
msgstr ""
-#: part/models.py:3623
+#: part/models.py:3610
msgid "Simplified key for the test"
msgstr ""
-#: part/models.py:3630
+#: part/models.py:3617
msgid "Test Description"
msgstr ""
-#: part/models.py:3631
+#: part/models.py:3618
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3635 report/models.py:208
+#: part/models.py:3622 report/models.py:216
#: templates/js/translated/part.js:2919
#: templates/js/translated/table_filters.js:502
msgid "Enabled"
msgstr ""
-#: part/models.py:3635
+#: part/models.py:3622
msgid "Is this test enabled?"
msgstr ""
-#: part/models.py:3640 templates/js/translated/part.js:2927
+#: part/models.py:3627 templates/js/translated/part.js:2927
#: templates/js/translated/table_filters.js:498
msgid "Required"
msgstr ""
-#: part/models.py:3641
+#: part/models.py:3628
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3646 templates/js/translated/part.js:2935
+#: part/models.py:3633 templates/js/translated/part.js:2935
msgid "Requires Value"
msgstr ""
-#: part/models.py:3647
+#: part/models.py:3634
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3652 templates/js/translated/part.js:2942
+#: part/models.py:3639 templates/js/translated/part.js:2942
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3654
+#: part/models.py:3641
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643
+#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643
msgid "Choices"
msgstr ""
-#: part/models.py:3661
+#: part/models.py:3648
msgid "Valid choices for this test (comma-separated)"
msgstr ""
-#: part/models.py:3693
+#: part/models.py:3680
msgid "Part Parameter Template"
msgstr ""
-#: part/models.py:3720
+#: part/models.py:3707
msgid "Checkbox parameters cannot have units"
msgstr ""
-#: part/models.py:3725
+#: part/models.py:3712
msgid "Checkbox parameters cannot have choices"
msgstr ""
-#: part/models.py:3762
+#: part/models.py:3749
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3777
+#: part/models.py:3764
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3784
+#: part/models.py:3771
msgid "Physical units for this parameter"
msgstr ""
-#: part/models.py:3792
+#: part/models.py:3779
msgid "Parameter description"
msgstr ""
-#: part/models.py:3798 templates/js/translated/part.js:1634
+#: part/models.py:3785 templates/js/translated/part.js:1634
#: templates/js/translated/table_filters.js:837
msgid "Checkbox"
msgstr ""
-#: part/models.py:3799
+#: part/models.py:3786
msgid "Is this parameter a checkbox?"
msgstr ""
-#: part/models.py:3805
+#: part/models.py:3792
msgid "Valid choices for this parameter (comma-separated)"
msgstr ""
-#: part/models.py:3839
+#: part/models.py:3826
msgid "Part Parameter"
msgstr ""
-#: part/models.py:3865
+#: part/models.py:3852
msgid "Parameter cannot be modified - part is locked"
msgstr ""
-#: part/models.py:3903
+#: part/models.py:3890
msgid "Invalid choice for parameter value"
msgstr ""
-#: part/models.py:3952
+#: part/models.py:3939
msgid "Parent Part"
msgstr ""
-#: part/models.py:3960 part/models.py:4068 part/models.py:4069
+#: part/models.py:3947 part/models.py:4055 part/models.py:4056
#: templates/InvenTree/settings/settings_staff_js.html:295
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3966
+#: part/models.py:3953
msgid "Parameter Value"
msgstr ""
-#: part/models.py:4016
+#: part/models.py:4003
msgid "Part Category Parameter Template"
msgstr ""
-#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304
+#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304
msgid "Default Value"
msgstr ""
-#: part/models.py:4076
+#: part/models.py:4063
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:4114
+#: part/models.py:4101
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:4115
+#: part/models.py:4102
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:4117
+#: part/models.py:4104
msgid "Part IPN value"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "Level"
msgstr ""
-#: part/models.py:4118
+#: part/models.py:4105
msgid "BOM level"
msgstr ""
-#: part/models.py:4228
+#: part/models.py:4215
msgid "BOM item cannot be modified - assembly is locked"
msgstr ""
-#: part/models.py:4235
+#: part/models.py:4222
msgid "BOM item cannot be modified - variant assembly is locked"
msgstr ""
-#: part/models.py:4245
+#: part/models.py:4232
msgid "Select parent part"
msgstr ""
-#: part/models.py:4255
+#: part/models.py:4242
msgid "Sub part"
msgstr ""
-#: part/models.py:4256
+#: part/models.py:4243
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4267
+#: part/models.py:4254
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:4273
+#: part/models.py:4260
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:4279
+#: part/models.py:4266
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:4286 part/templates/part/upload_bom.html:55
+#: part/models.py:4273 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:4287
+#: part/models.py:4274
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:4294
+#: part/models.py:4281
msgid "BOM item reference"
msgstr ""
-#: part/models.py:4302
+#: part/models.py:4289
msgid "BOM item notes"
msgstr ""
-#: part/models.py:4308
+#: part/models.py:4295
msgid "Checksum"
msgstr ""
-#: part/models.py:4309
+#: part/models.py:4296
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:4314 templates/js/translated/table_filters.js:181
+#: part/models.py:4301 templates/js/translated/table_filters.js:181
msgid "Validated"
msgstr ""
-#: part/models.py:4315
+#: part/models.py:4302
msgid "This BOM item has been validated"
msgstr ""
-#: part/models.py:4320 part/templates/part/upload_bom.html:57
+#: part/models.py:4307 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1054
#: templates/js/translated/table_filters.js:185
#: templates/js/translated/table_filters.js:218
msgid "Gets inherited"
msgstr ""
-#: part/models.py:4321
+#: part/models.py:4308
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:4327
+#: part/models.py:4314
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:4412 stock/models.py:689
+#: part/models.py:4399 stock/models.py:689
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:4422 part/models.py:4424
+#: part/models.py:4409 part/models.py:4411
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:4561
+#: part/models.py:4554
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:4582
+#: part/models.py:4575
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:4595
+#: part/models.py:4588
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:4603
+#: part/models.py:4596
msgid "Substitute part"
msgstr ""
-#: part/models.py:4619
+#: part/models.py:4612
msgid "Part 1"
msgstr ""
-#: part/models.py:4627
+#: part/models.py:4620
msgid "Part 2"
msgstr ""
-#: part/models.py:4628
+#: part/models.py:4621
msgid "Select Related Part"
msgstr ""
-#: part/models.py:4647
+#: part/models.py:4640
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:4652
+#: part/models.py:4645
msgid "Duplicate relationship already exists"
msgstr ""
@@ -7571,326 +7568,326 @@ msgstr ""
msgid "Number of parts using this template"
msgstr ""
-#: part/serializers.py:434
+#: part/serializers.py:432
msgid "No parts selected"
msgstr ""
-#: part/serializers.py:444
+#: part/serializers.py:442
msgid "Select category"
msgstr ""
-#: part/serializers.py:479
+#: part/serializers.py:477
msgid "Original Part"
msgstr ""
-#: part/serializers.py:480
+#: part/serializers.py:478
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:485
+#: part/serializers.py:483
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:486
+#: part/serializers.py:484
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:492 part/templates/part/detail.html:293
+#: part/serializers.py:490 part/templates/part/detail.html:293
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:493
+#: part/serializers.py:491
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:497
msgid "Copy Parameters"
msgstr ""
-#: part/serializers.py:500
+#: part/serializers.py:498
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:506
+#: part/serializers.py:504
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:507
+#: part/serializers.py:505
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:523
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:527
+#: part/serializers.py:525
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:534
+#: part/serializers.py:532
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:535
+#: part/serializers.py:533
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:550
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:568
+#: part/serializers.py:566
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:578
+#: part/serializers.py:576
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:585
+#: part/serializers.py:583
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:594
+#: part/serializers.py:592
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:605
+#: part/serializers.py:603
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:612
+#: part/serializers.py:610
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:924
+#: part/serializers.py:922
msgid "Revisions"
msgstr ""
-#: part/serializers.py:929
+#: part/serializers.py:927
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:932
+#: part/serializers.py:930
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:962 part/templates/part/copy_part.html:9
+#: part/serializers.py:960 part/templates/part/copy_part.html:9
#: templates/js/translated/part.js:474
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:963
+#: part/serializers.py:961
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:969 templates/js/translated/part.js:103
+#: part/serializers.py:967 templates/js/translated/part.js:103
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:970
+#: part/serializers.py:968
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:976
+#: part/serializers.py:974
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:977
+#: part/serializers.py:975
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:985
+#: part/serializers.py:983
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:986
+#: part/serializers.py:984
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:991
+#: part/serializers.py:989
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:992
+#: part/serializers.py:990
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1009
+#: part/serializers.py:1007
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1215
+#: part/serializers.py:1213
msgid "Limit stocktake report to a particular part, and any variant parts"
msgstr ""
-#: part/serializers.py:1225
+#: part/serializers.py:1223
msgid "Limit stocktake report to a particular part category, and any child categories"
msgstr ""
-#: part/serializers.py:1235
+#: part/serializers.py:1233
msgid "Limit stocktake report to a particular stock location, and any child locations"
msgstr ""
-#: part/serializers.py:1241
+#: part/serializers.py:1239
msgid "Exclude External Stock"
msgstr ""
-#: part/serializers.py:1242
+#: part/serializers.py:1240
msgid "Exclude stock items in external locations"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1245
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1248
+#: part/serializers.py:1246
msgid "Generate report file containing calculated stocktake data"
msgstr ""
-#: part/serializers.py:1253
+#: part/serializers.py:1251
msgid "Update Parts"
msgstr ""
-#: part/serializers.py:1254
+#: part/serializers.py:1252
msgid "Update specified parts with calculated stocktake data"
msgstr ""
-#: part/serializers.py:1262
+#: part/serializers.py:1260
msgid "Stocktake functionality is not enabled"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1366
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1375
+#: part/serializers.py:1373
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1383
+#: part/serializers.py:1381
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1390
+#: part/serializers.py:1388
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1419
+#: part/serializers.py:1417
msgid "Update"
msgstr ""
-#: part/serializers.py:1420
+#: part/serializers.py:1418
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1443
+#: part/serializers.py:1441
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1450
+#: part/serializers.py:1448
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1453
+#: part/serializers.py:1451
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1597
+#: part/serializers.py:1595
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1606
+#: part/serializers.py:1604
msgid "Component Name"
msgstr ""
-#: part/serializers.py:1609
+#: part/serializers.py:1607
msgid "Component IPN"
msgstr ""
-#: part/serializers.py:1612
+#: part/serializers.py:1610
msgid "Component Description"
msgstr ""
-#: part/serializers.py:1618
+#: part/serializers.py:1616
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1627 part/templates/part/part_base.html:242
+#: part/serializers.py:1625 part/templates/part/part_base.html:242
#: templates/js/translated/bom.js:1219
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1858
+#: part/serializers.py:1856
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:1866
+#: part/serializers.py:1864
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:1867
+#: part/serializers.py:1865
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:1872
+#: part/serializers.py:1870
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:1873
+#: part/serializers.py:1871
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:1878
+#: part/serializers.py:1876
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:1879
+#: part/serializers.py:1877
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:1884
+#: part/serializers.py:1882
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:1885
+#: part/serializers.py:1883
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:1922
+#: part/serializers.py:1920
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:1923
+#: part/serializers.py:1921
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:1955
+#: part/serializers.py:1953
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:1999
+#: part/serializers.py:1997
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:2002
+#: part/serializers.py:2000
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:2004
+#: part/serializers.py:2002
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:2013
+#: part/serializers.py:2011
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2019
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:2044
+#: part/serializers.py:2042
msgid "At least one BOM item is required"
msgstr ""
@@ -8216,7 +8213,7 @@ msgid "Subscribe to notifications for this part"
msgstr ""
#: part/templates/part/part_base.html:52
-#: stock/templates/stock/item_base.html:62
+#: stock/templates/stock/item_base.html:61
#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136
msgid "Print Label"
msgstr ""
@@ -8226,7 +8223,7 @@ msgid "Show pricing information"
msgstr ""
#: part/templates/part/part_base.html:63
-#: stock/templates/stock/item_base.html:110
+#: stock/templates/stock/item_base.html:106
#: stock/templates/stock/location.html:80
msgid "Stock actions"
msgstr ""
@@ -8297,12 +8294,12 @@ msgid "Required for Orders"
msgstr ""
#: part/templates/part/part_base.html:225
-#: stock/templates/stock/item_base.html:388
+#: stock/templates/stock/item_base.html:384
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:234
-#: stock/templates/stock/item_base.html:381
+#: stock/templates/stock/item_base.html:377
msgid "Allocated to Sales Orders"
msgstr ""
@@ -8322,7 +8319,7 @@ msgid "Latest Serial Number"
msgstr ""
#: part/templates/part/part_base.html:372
-#: stock/templates/stock/item_base.html:322
+#: stock/templates/stock/item_base.html:318
msgid "Search for serial number"
msgstr ""
@@ -8449,7 +8446,7 @@ msgid "Edit"
msgstr ""
#: part/templates/part/prices.html:28 stock/admin.py:252
-#: stock/templates/stock/item_base.html:446
+#: stock/templates/stock/item_base.html:442
#: templates/js/translated/company.js:1703
#: templates/js/translated/company.js:1713
#: templates/js/translated/stock.js:2332
@@ -8604,7 +8601,7 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: plugin/api.py:172
+#: plugin/api.py:174
msgid "Plugin cannot be deleted as it is currently active"
msgstr ""
@@ -8940,7 +8937,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:47 report/models.py:307
+#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315
msgid "Landscape"
msgstr ""
@@ -9012,44 +9009,44 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:194 plugin/installer.py:274
+#: plugin/installer.py:199 plugin/installer.py:282
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:197
+#: plugin/installer.py:202
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:241
+#: plugin/installer.py:246
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:246
+#: plugin/installer.py:251
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:265
+#: plugin/installer.py:273
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:268
+#: plugin/installer.py:276
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:271
+#: plugin/installer.py:279
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:291
+#: plugin/installer.py:299
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:295
+#: plugin/installer.py:303
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:308
+#: plugin/installer.py:316
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -9098,7 +9095,7 @@ msgstr ""
msgid "Package Plugin"
msgstr ""
-#: plugin/models.py:220 report/models.py:474
+#: plugin/models.py:220 report/models.py:482
#: templates/InvenTree/settings/plugin_settings.html:9
#: templates/js/translated/plugin.js:51
msgid "Plugin"
@@ -9167,6 +9164,38 @@ msgstr ""
msgid "InvenTree Contributors"
msgstr ""
+#: plugin/samples/integration/user_interface_sample.py:22
+msgid "Enable Part Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:23
+msgid "Enable custom panels for Part views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:28
+msgid "Enable Purchase Order Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:29
+msgid "Enable custom panels for Purchase Order views"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:34
+msgid "Enable Broken Panels"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:35
+msgid "Enable broken panels for testing"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:40
+msgid "Enable Dynamic Panel"
+msgstr ""
+
+#: plugin/samples/integration/user_interface_sample.py:41
+msgid "Enable dynamic panels for testing"
+msgstr ""
+
#: plugin/serializers.py:81
msgid "Source URL"
msgstr ""
@@ -9245,12 +9274,36 @@ msgstr ""
msgid "Delete the plugin configuration from the database"
msgstr ""
+#: plugin/serializers.py:324
+msgid "Plugin Key"
+msgstr ""
+
+#: plugin/serializers.py:328
+msgid "Panel Name"
+msgstr ""
+
+#: plugin/serializers.py:332
+msgid "Panel Title"
+msgstr ""
+
+#: plugin/serializers.py:337
+msgid "Panel Icon"
+msgstr ""
+
+#: plugin/serializers.py:341
+msgid "Panel Content (HTML)"
+msgstr ""
+
+#: plugin/serializers.py:345
+msgid "Panel Source (javascript)"
+msgstr ""
+
#: report/api.py:88
msgid "No valid objects provided to template"
msgstr ""
-#: report/api.py:103 report/models.py:438 report/serializers.py:98
-#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817
+#: report/api.py:103 report/models.py:446 report/serializers.py:99
+#: report/serializers.py:149 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
@@ -9281,7 +9334,11 @@ msgstr ""
msgid "Error printing label"
msgstr ""
-#: report/api.py:375 report/api.py:411
+#: report/api.py:358
+msgid "Report saved at time of printing"
+msgstr ""
+
+#: report/api.py:384 report/api.py:420
#, python-brace-format
msgid "Template file '{template}' is missing or does not exist"
msgstr ""
@@ -9318,135 +9375,143 @@ msgstr ""
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:202
+#: report/models.py:168
+msgid "Attach to Model on Print"
+msgstr ""
+
+#: report/models.py:170
+msgid "Save report output as an attachment against linked model instance when printing"
+msgstr ""
+
+#: report/models.py:210
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:203
+#: report/models.py:211
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:208
+#: report/models.py:216
msgid "Template is enabled"
msgstr ""
-#: report/models.py:214
+#: report/models.py:222
msgid "Target model type for template"
msgstr ""
-#: report/models.py:234
+#: report/models.py:242
msgid "Filters"
msgstr ""
-#: report/models.py:235
+#: report/models.py:243
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:294 report/models.py:361
+#: report/models.py:302 report/models.py:369
msgid "Template file"
msgstr ""
-#: report/models.py:302
+#: report/models.py:310
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:308
+#: report/models.py:316
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:367
+#: report/models.py:375
msgid "Width [mm]"
msgstr ""
-#: report/models.py:368
+#: report/models.py:376
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:374
+#: report/models.py:382
msgid "Height [mm]"
msgstr ""
-#: report/models.py:375
+#: report/models.py:383
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:438
+#: report/models.py:446
msgid "Number of items to process"
msgstr ""
-#: report/models.py:444
+#: report/models.py:452
msgid "Report generation is complete"
msgstr ""
-#: report/models.py:448 templates/js/translated/build.js:2352
+#: report/models.py:456 templates/js/translated/build.js:2352
msgid "Progress"
msgstr ""
-#: report/models.py:448
+#: report/models.py:456
msgid "Report generation progress"
msgstr ""
-#: report/models.py:456
+#: report/models.py:464
msgid "Report Template"
msgstr ""
-#: report/models.py:463 report/models.py:486
+#: report/models.py:471 report/models.py:494
msgid "Output File"
msgstr ""
-#: report/models.py:464 report/models.py:487
+#: report/models.py:472 report/models.py:495
msgid "Generated output file"
msgstr ""
-#: report/models.py:475
+#: report/models.py:483
msgid "Label output plugin"
msgstr ""
-#: report/models.py:479
+#: report/models.py:487
msgid "Label Template"
msgstr ""
-#: report/models.py:502
+#: report/models.py:510
msgid "Snippet"
msgstr ""
-#: report/models.py:503
+#: report/models.py:511
msgid "Report snippet file"
msgstr ""
-#: report/models.py:510
+#: report/models.py:518
msgid "Snippet file description"
msgstr ""
-#: report/models.py:528
+#: report/models.py:536
msgid "Asset"
msgstr ""
-#: report/models.py:529
+#: report/models.py:537
msgid "Report asset file"
msgstr ""
-#: report/models.py:536
+#: report/models.py:544
msgid "Asset file description"
msgstr ""
-#: report/serializers.py:91
+#: report/serializers.py:92
msgid "Select report template"
msgstr ""
-#: report/serializers.py:99 report/serializers.py:149
+#: report/serializers.py:100 report/serializers.py:150
msgid "List of item primary keys to include in the report"
msgstr ""
-#: report/serializers.py:132
+#: report/serializers.py:133
msgid "Select label template"
msgstr ""
-#: report/serializers.py:140
+#: report/serializers.py:141
msgid "Printing Plugin"
msgstr ""
-#: report/serializers.py:141
+#: report/serializers.py:142
msgid "Select plugin to use for label printing"
msgstr ""
@@ -9517,7 +9582,7 @@ msgstr ""
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report.html:103 stock/models.py:2538
+#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533
msgid "Result"
msgstr ""
@@ -9598,7 +9663,7 @@ msgid "Customer ID"
msgstr ""
#: stock/admin.py:206 stock/models.py:829
-#: stock/templates/stock/item_base.html:354
+#: stock/templates/stock/item_base.html:350
msgid "Installed In"
msgstr ""
@@ -9623,7 +9688,7 @@ msgid "Delete on Deplete"
msgstr ""
#: stock/admin.py:261 stock/models.py:923
-#: stock/templates/stock/item_base.html:433
+#: stock/templates/stock/item_base.html:429
#: templates/js/translated/stock.js:2316 users/models.py:124
msgid "Expiry Date"
msgstr ""
@@ -9665,7 +9730,7 @@ msgid "Expiry date after"
msgstr ""
#: stock/api.py:839 stock/serializers.py:611
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#: templates/js/translated/table_filters.js:448
msgid "Stale"
msgstr ""
@@ -9715,7 +9780,7 @@ msgid "Stock Locations"
msgstr ""
#: stock/models.py:185 stock/models.py:972
-#: stock/templates/stock/item_base.html:247
+#: stock/templates/stock/item_base.html:243
msgid "Owner"
msgstr ""
@@ -9826,7 +9891,7 @@ msgstr ""
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:892 stock/templates/stock/item_base.html:363
+#: stock/models.py:892 stock/templates/stock/item_base.html:359
msgid "Consumed By"
msgstr ""
@@ -9891,7 +9956,7 @@ msgstr ""
msgid "Serial numbers already exist"
msgstr ""
-#: stock/models.py:1636
+#: stock/models.py:1636 stock/models.py:2436
msgid "Test template does not exist"
msgstr ""
@@ -9939,67 +10004,67 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:2337
+#: stock/models.py:2335
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:2370
+#: stock/models.py:2368
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2410
+#: stock/models.py:2408
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:2443
+#: stock/models.py:2439
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2448
+#: stock/models.py:2443
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2453
+#: stock/models.py:2448
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:2538
+#: stock/models.py:2533
msgid "Test result"
msgstr ""
-#: stock/models.py:2545
+#: stock/models.py:2540
msgid "Test output value"
msgstr ""
-#: stock/models.py:2553 stock/serializers.py:245
+#: stock/models.py:2548 stock/serializers.py:245
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2557
+#: stock/models.py:2552
msgid "Test notes"
msgstr ""
-#: stock/models.py:2565 templates/js/translated/stock.js:1633
+#: stock/models.py:2560 templates/js/translated/stock.js:1633
msgid "Test station"
msgstr ""
-#: stock/models.py:2566
+#: stock/models.py:2561
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:2572
+#: stock/models.py:2567
msgid "Started"
msgstr ""
-#: stock/models.py:2573
+#: stock/models.py:2568
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:2579
+#: stock/models.py:2574
msgid "Finished"
msgstr ""
-#: stock/models.py:2580
+#: stock/models.py:2575
msgid "The timestamp of the test finish"
msgstr ""
@@ -10059,7 +10124,7 @@ msgstr ""
msgid "Serial number is too large"
msgstr ""
-#: stock/serializers.py:459 stock/templates/stock/item_base.html:193
+#: stock/serializers.py:459 stock/templates/stock/item_base.html:189
msgid "Parent Item"
msgstr ""
@@ -10071,7 +10136,7 @@ msgstr ""
msgid "Use pack size when adding: the quantity defined is the number of packs"
msgstr ""
-#: stock/serializers.py:603 stock/templates/stock/item_base.html:437
+#: stock/serializers.py:603 stock/templates/stock/item_base.html:433
#: templates/js/translated/table_filters.js:442 users/models.py:174
msgid "Expired"
msgstr ""
@@ -10410,7 +10475,7 @@ msgstr ""
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:65
+#: stock/templates/stock/item.html:85
msgid "Test Report"
msgstr ""
@@ -10450,200 +10515,204 @@ msgstr ""
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:59
+#: stock/templates/stock/item_base.html:58
#: stock/templates/stock/location.html:67
#: templates/js/translated/filters.js:434
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:75
+#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49
+msgid "Print Report"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:71
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:79
+#: stock/templates/stock/item_base.html:75
#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:81
+#: stock/templates/stock/item_base.html:77
#: templates/js/translated/stock.js:1891
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:78
#: templates/js/translated/stock.js:1900
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:81
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:88
+#: stock/templates/stock/item_base.html:84
#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:87
#: templates/js/translated/stock.js:1973
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:94
+#: stock/templates/stock/item_base.html:90
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:97
+#: stock/templates/stock/item_base.html:93
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:101
+#: stock/templates/stock/item_base.html:97
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:115
+#: stock/templates/stock/item_base.html:111
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:114
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:120
+#: stock/templates/stock/item_base.html:116
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:123
+#: stock/templates/stock/item_base.html:119
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139
+#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139
#: templates/js/translated/build.js:2298 templates/navbar.html:38
msgid "Build"
msgstr ""
-#: stock/templates/stock/item_base.html:211
+#: stock/templates/stock/item_base.html:207
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:251
+#: stock/templates/stock/item_base.html:247
msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:252
+#: stock/templates/stock/item_base.html:248
#: stock/templates/stock/location.html:146
msgid "Read only"
msgstr ""
-#: stock/templates/stock/item_base.html:265
+#: stock/templates/stock/item_base.html:261
msgid "This stock item is unavailable"
msgstr ""
-#: stock/templates/stock/item_base.html:271
+#: stock/templates/stock/item_base.html:267
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:272
+#: stock/templates/stock/item_base.html:268
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:287
+#: stock/templates/stock/item_base.html:283
msgid "This stock item is allocated to Sales Order"
msgstr ""
-#: stock/templates/stock/item_base.html:295
+#: stock/templates/stock/item_base.html:291
msgid "This stock item is allocated to Build Order"
msgstr ""
-#: stock/templates/stock/item_base.html:311
+#: stock/templates/stock/item_base.html:307
msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:317
+#: stock/templates/stock/item_base.html:313
msgid "Navigate to previous serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:326
+#: stock/templates/stock/item_base.html:322
msgid "Navigate to next serial number"
msgstr ""
-#: stock/templates/stock/item_base.html:398
+#: stock/templates/stock/item_base.html:394
#: templates/js/translated/build.js:2555
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:409
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:419
+#: stock/templates/stock/item_base.html:415
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:437
+#: stock/templates/stock/item_base.html:433
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:439
+#: stock/templates/stock/item_base.html:435
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:455
+#: stock/templates/stock/item_base.html:451
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:500
#: templates/js/translated/stock.js:2038
msgid "stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:527
+#: stock/templates/stock/item_base.html:523
msgid "Edit Stock Status"
msgstr ""
-#: stock/templates/stock/item_base.html:536
+#: stock/templates/stock/item_base.html:532
msgid "Stock Item QR Code"
msgstr ""
-#: stock/templates/stock/item_base.html:547
+#: stock/templates/stock/item_base.html:543
msgid "Link Barcode to Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:611
+#: stock/templates/stock/item_base.html:607
msgid "Select one of the part variants listed below."
msgstr ""
-#: stock/templates/stock/item_base.html:614
+#: stock/templates/stock/item_base.html:610
msgid "Warning"
msgstr ""
-#: stock/templates/stock/item_base.html:615
+#: stock/templates/stock/item_base.html:611
msgid "This action cannot be easily undone"
msgstr ""
-#: stock/templates/stock/item_base.html:623
+#: stock/templates/stock/item_base.html:619
msgid "Convert Stock Item"
msgstr ""
-#: stock/templates/stock/item_base.html:656
+#: stock/templates/stock/item_base.html:652
msgid "Return to Stock"
msgstr ""
@@ -11310,7 +11379,7 @@ msgid "Delete Location Type"
msgstr ""
#: templates/InvenTree/settings/settings_staff_js.html:503
-#: templates/InvenTree/settings/stock.html:38
+#: templates/InvenTree/settings/stock.html:39
msgid "New Location Type"
msgstr ""
@@ -11367,7 +11436,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:34
+#: templates/InvenTree/settings/stock.html:35
msgid "Stock Location Types"
msgstr ""
@@ -11852,23 +11921,23 @@ msgstr ""
msgid "Barcode Identifier"
msgstr ""
-#: templates/base.html:103
+#: templates/base.html:102
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:106
+#: templates/base.html:105
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
-#: templates/base.html:106 templates/base.html:116
+#: templates/base.html:105 templates/base.html:115
msgid "Contact your system administrator for further information"
msgstr ""
-#: templates/base.html:113
+#: templates/base.html:112
msgid "Pending Database Migrations"
msgstr ""
-#: templates/base.html:116
+#: templates/base.html:115
msgid "There are pending database migrations which require attention"
msgstr ""
@@ -13946,10 +14015,6 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/report.js:49
-msgid "Print Report"
-msgstr ""
-
#: templates/js/translated/report.js:68
msgid "Report print successful"
msgstr ""
diff --git a/src/backend/InvenTree/part/models.py b/src/backend/InvenTree/part/models.py
index 246d71080ce9..bfc499d61172 100644
--- a/src/backend/InvenTree/part/models.py
+++ b/src/backend/InvenTree/part/models.py
@@ -1949,7 +1949,7 @@ def pricing(self):
return pricing
- def schedule_pricing_update(self, create: bool = False, test: bool = False):
+ def schedule_pricing_update(self, create: bool = False):
"""Helper function to schedule a pricing update.
Importantly, catches any errors which may occur during deletion of related objects,
@@ -1959,7 +1959,6 @@ def schedule_pricing_update(self, create: bool = False, test: bool = False):
Arguments:
create: Whether or not a new PartPricing object should be created if it does not already exist
- test: Whether or not the pricing update is allowed during unit tests
"""
try:
self.refresh_from_db()
@@ -1970,7 +1969,7 @@ def schedule_pricing_update(self, create: bool = False, test: bool = False):
pricing = self.pricing
if create or pricing.pk:
- pricing.schedule_for_update(test=test)
+ pricing.schedule_for_update()
except IntegrityError:
# If this part instance has been deleted,
# some post-delete or post-save signals may still be fired
@@ -2550,7 +2549,8 @@ class PartPricing(common.models.MetaMixin):
- Detailed pricing information is very context specific in any case
"""
- price_modified = False
+ # When calculating assembly pricing, we limit the depth of the calculation
+ MAX_PRICING_DEPTH = 50
@property
def is_valid(self):
@@ -2579,14 +2579,10 @@ def convert(self, money):
return result
- def schedule_for_update(self, counter: int = 0, test: bool = False):
+ def schedule_for_update(self, counter: int = 0):
"""Schedule this pricing to be updated."""
import InvenTree.ready
- # If we are running within CI, only schedule the update if the test flag is set
- if settings.TESTING and not test:
- return
-
# If importing data, skip pricing update
if InvenTree.ready.isImportingData():
return
@@ -2630,7 +2626,7 @@ def schedule_for_update(self, counter: int = 0, test: bool = False):
logger.debug('Pricing for %s already scheduled for update - skipping', p)
return
- if counter > 25:
+ if counter > self.MAX_PRICING_DEPTH:
# Prevent infinite recursion / stack depth issues
logger.debug(
counter, f'Skipping pricing update for {p} - maximum depth exceeded'
@@ -2649,16 +2645,36 @@ def schedule_for_update(self, counter: int = 0, test: bool = False):
import part.tasks as part_tasks
+ # Pricing calculations are performed in the background,
+ # unless the TESTING_PRICING flag is set
+ background = not settings.TESTING or not settings.TESTING_PRICING
+
# Offload task to update the pricing
- # Force async, to prevent running in the foreground
+ # Force async, to prevent running in the foreground (unless in testing mode)
InvenTree.tasks.offload_task(
- part_tasks.update_part_pricing, self, counter=counter, force_async=True
+ part_tasks.update_part_pricing,
+ self,
+ counter=counter,
+ force_async=background,
)
- def update_pricing(self, counter: int = 0, cascade: bool = True):
- """Recalculate all cost data for the referenced Part instance."""
- # If importing data, skip pricing update
+ def update_pricing(
+ self,
+ counter: int = 0,
+ cascade: bool = True,
+ previous_min=None,
+ previous_max=None,
+ ):
+ """Recalculate all cost data for the referenced Part instance.
+
+ Arguments:
+ counter: Recursion counter (used to prevent infinite recursion)
+ cascade: If True, update pricing for all assemblies and templates which use this part
+ previous_min: Previous minimum price (used to prevent further updates if unchanged)
+ previous_max: Previous maximum price (used to prevent further updates if unchanged)
+ """
+ # If importing data, skip pricing update
if InvenTree.ready.isImportingData():
return
@@ -2689,18 +2705,25 @@ def update_pricing(self, counter: int = 0, cascade: bool = True):
# Background worker processes may try to concurrently update
pass
+ pricing_changed = False
+
+ # Without previous pricing data, we assume that the pricing has changed
+ if previous_min != self.overall_min or previous_max != self.overall_max:
+ pricing_changed = True
+
# Update parent assemblies and templates
- if cascade and self.price_modified:
+ if pricing_changed and cascade:
self.update_assemblies(counter)
self.update_templates(counter)
def update_assemblies(self, counter: int = 0):
"""Schedule updates for any assemblies which use this part."""
# If the linked Part is used in any assemblies, schedule a pricing update for those assemblies
+
used_in_parts = self.part.get_used_in()
for p in used_in_parts:
- p.pricing.schedule_for_update(counter + 1)
+ p.pricing.schedule_for_update(counter=counter + 1)
def update_templates(self, counter: int = 0):
"""Schedule updates for any template parts above this part."""
@@ -2716,13 +2739,13 @@ def save(self, *args, **kwargs):
try:
self.update_overall_cost()
- except IntegrityError:
+ except Exception:
# If something has happened to the Part model, might throw an error
pass
try:
super().save(*args, **kwargs)
- except IntegrityError:
+ except Exception:
# This error may be thrown if there is already duplicate pricing data
pass
@@ -2790,9 +2813,6 @@ def update_bom_cost(self, save=True):
any_max_elements = True
- old_bom_cost_min = self.bom_cost_min
- old_bom_cost_max = self.bom_cost_max
-
if any_min_elements:
self.bom_cost_min = cumulative_min
else:
@@ -2803,12 +2823,6 @@ def update_bom_cost(self, save=True):
else:
self.bom_cost_max = None
- if (
- old_bom_cost_min != self.bom_cost_min
- or old_bom_cost_max != self.bom_cost_max
- ):
- self.price_modified = True
-
if save:
self.save()
@@ -2872,12 +2886,6 @@ def update_purchase_cost(self, save=True):
if purchase_max is None or cost > purchase_max:
purchase_max = cost
- if (
- self.purchase_cost_min != purchase_min
- or self.purchase_cost_max != purchase_max
- ):
- self.price_modified = True
-
self.purchase_cost_min = purchase_min
self.purchase_cost_max = purchase_max
@@ -2904,12 +2912,6 @@ def update_internal_cost(self, save=True):
if max_int_cost is None or cost > max_int_cost:
max_int_cost = cost
- if (
- self.internal_cost_min != min_int_cost
- or self.internal_cost_max != max_int_cost
- ):
- self.price_modified = True
-
self.internal_cost_min = min_int_cost
self.internal_cost_max = max_int_cost
@@ -2945,12 +2947,6 @@ def update_supplier_cost(self, save=True):
if max_sup_cost is None or cost > max_sup_cost:
max_sup_cost = cost
- if (
- self.supplier_price_min != min_sup_cost
- or self.supplier_price_max != max_sup_cost
- ):
- self.price_modified = True
-
self.supplier_price_min = min_sup_cost
self.supplier_price_max = max_sup_cost
@@ -2986,9 +2982,6 @@ def update_variant_cost(self, save=True):
if variant_max is None or v_max > variant_max:
variant_max = v_max
- if self.variant_cost_min != variant_min or self.variant_cost_max != variant_max:
- self.price_modified = True
-
self.variant_cost_min = variant_min
self.variant_cost_max = variant_max
@@ -3109,12 +3102,6 @@ def update_sale_cost(self, save=True):
if max_sell_history is None or cost > max_sell_history:
max_sell_history = cost
- if (
- self.sale_history_min != min_sell_history
- or self.sale_history_max != max_sell_history
- ):
- self.price_modified = True
-
self.sale_history_min = min_sell_history
self.sale_history_max = max_sell_history
@@ -4525,7 +4512,10 @@ def update_bom_build_lines(sender, instance, created, **kwargs):
def update_pricing_after_edit(sender, instance, created, **kwargs):
"""Callback function when a part price break is created or updated."""
# Update part pricing *unless* we are importing data
- if InvenTree.ready.canAppAccessDatabase() and not InvenTree.ready.isImportingData():
+ if (
+ InvenTree.ready.canAppAccessDatabase(allow_test=settings.TESTING_PRICING)
+ and not InvenTree.ready.isImportingData()
+ ):
if instance.part:
instance.part.schedule_pricing_update(create=True)
@@ -4542,7 +4532,10 @@ def update_pricing_after_edit(sender, instance, created, **kwargs):
def update_pricing_after_delete(sender, instance, **kwargs):
"""Callback function when a part price break is deleted."""
# Update part pricing *unless* we are importing data
- if InvenTree.ready.canAppAccessDatabase() and not InvenTree.ready.isImportingData():
+ if (
+ InvenTree.ready.canAppAccessDatabase(allow_test=settings.TESTING_PRICING)
+ and not InvenTree.ready.isImportingData()
+ ):
if instance.part:
instance.part.schedule_pricing_update(create=False)
diff --git a/src/backend/InvenTree/part/tasks.py b/src/backend/InvenTree/part/tasks.py
index ec30fdfdb0f4..8ea76fd6a9cd 100644
--- a/src/backend/InvenTree/part/tasks.py
+++ b/src/backend/InvenTree/part/tasks.py
@@ -73,7 +73,11 @@ def update_part_pricing(pricing: part.models.PartPricing, counter: int = 0):
"""
logger.info('Updating part pricing for %s', pricing.part)
- pricing.update_pricing(counter=counter)
+ pricing.update_pricing(
+ counter=counter,
+ previous_min=pricing.overall_min,
+ previous_max=pricing.overall_max,
+ )
@scheduled_task(ScheduledTask.DAILY)
diff --git a/src/backend/InvenTree/part/test_pricing.py b/src/backend/InvenTree/part/test_pricing.py
index 4abb6bcf6692..c7dca0f1690a 100644
--- a/src/backend/InvenTree/part/test_pricing.py
+++ b/src/backend/InvenTree/part/test_pricing.py
@@ -1,6 +1,7 @@
"""Unit tests for Part pricing calculations."""
from django.core.exceptions import ObjectDoesNotExist
+from django.test.utils import override_settings
from djmoney.contrib.exchange.models import convert_money
from djmoney.money import Money
@@ -88,6 +89,7 @@ def create_price_breaks(self):
part=self.sp_2, quantity=10, price=4.55, price_currency='GBP'
)
+ @override_settings(TESTING_PRICING=True)
def test_pricing_data(self):
"""Test link between Part and PartPricing model."""
# Initially there is no associated Pricing data
@@ -112,6 +114,7 @@ def test_pricing_data(self):
def test_invalid_rate(self):
"""Ensure that conversion behaves properly with missing rates."""
+ @override_settings(TESTING_PRICING=True)
def test_simple(self):
"""Tests for hard-coded values."""
pricing = self.part.pricing
@@ -143,6 +146,7 @@ def test_simple(self):
self.assertEqual(pricing.overall_min, Money('0.111111', 'USD'))
self.assertEqual(pricing.overall_max, Money('25', 'USD'))
+ @override_settings(TESTING_PRICING=True)
def test_supplier_part_pricing(self):
"""Test for supplier part pricing."""
pricing = self.part.pricing
@@ -156,19 +160,22 @@ def test_supplier_part_pricing(self):
# Creating price breaks will cause the pricing to be updated
self.create_price_breaks()
- pricing.update_pricing()
+ pricing = self.part.pricing
+ pricing.refresh_from_db()
self.assertAlmostEqual(float(pricing.overall_min.amount), 2.015, places=2)
self.assertAlmostEqual(float(pricing.overall_max.amount), 3.06, places=2)
# Delete all supplier parts and re-calculate
self.part.supplier_parts.all().delete()
- pricing.update_pricing()
+
+ pricing = self.part.pricing
pricing.refresh_from_db()
self.assertIsNone(pricing.supplier_price_min)
self.assertIsNone(pricing.supplier_price_max)
+ @override_settings(TESTING_PRICING=True)
def test_internal_pricing(self):
"""Tests for internal price breaks."""
# Ensure internal pricing is enabled
@@ -188,7 +195,8 @@ def test_internal_pricing(self):
part=self.part, quantity=ii + 1, price=10 - ii, price_currency=currency
)
- pricing.update_internal_cost()
+ pricing = self.part.pricing
+ pricing.refresh_from_db()
# Expected money value
m_expected = Money(10 - ii, currency)
@@ -201,6 +209,7 @@ def test_internal_pricing(self):
self.assertEqual(pricing.internal_cost_max, Money(10, currency))
self.assertEqual(pricing.overall_max, Money(10, currency))
+ @override_settings(TESTING_PRICING=True)
def test_stock_item_pricing(self):
"""Test for stock item pricing data."""
# Create a part
@@ -243,6 +252,7 @@ def test_stock_item_pricing(self):
self.assertEqual(pricing.overall_min, Money(1.176471, 'USD'))
self.assertEqual(pricing.overall_max, Money(6.666667, 'USD'))
+ @override_settings(TESTING_PRICING=True)
def test_bom_pricing(self):
"""Unit test for BOM pricing calculations."""
pricing = self.part.pricing
@@ -252,7 +262,8 @@ def test_bom_pricing(self):
currency = 'AUD'
- for ii in range(10):
+ # Create pricing out of order, to ensure min/max values are calculated correctly
+ for ii in range(5):
# Create a new part for the BOM
sub_part = part.models.Part.objects.create(
name=f'Sub Part {ii}',
@@ -273,15 +284,21 @@ def test_bom_pricing(self):
part=self.part, sub_part=sub_part, quantity=5
)
- pricing.update_bom_cost()
-
# Check that the values have been updated correctly
self.assertEqual(pricing.currency, 'USD')
+ # Price range should have been automatically updated
+ self.part.refresh_from_db()
+ pricing = self.part.pricing
+
+ expected_min = 100
+ expected_max = 150
+
# Final overall pricing checks
- self.assertEqual(pricing.overall_min, Money('366.666665', 'USD'))
- self.assertEqual(pricing.overall_max, Money('550', 'USD'))
+ self.assertEqual(pricing.overall_min, Money(expected_min, 'USD'))
+ self.assertEqual(pricing.overall_max, Money(expected_max, 'USD'))
+ @override_settings(TESTING_PRICING=True)
def test_purchase_pricing(self):
"""Unit tests for historical purchase pricing."""
self.create_price_breaks()
@@ -349,6 +366,7 @@ def test_purchase_pricing(self):
# Max cost in USD
self.assertAlmostEqual(float(pricing.purchase_cost_max.amount), 6.95, places=2)
+ @override_settings(TESTING_PRICING=True)
def test_delete_with_pricing(self):
"""Test for deleting a part which has pricing information."""
# Create some pricing data
@@ -373,6 +391,7 @@ def test_delete_with_pricing(self):
with self.assertRaises(part.models.PartPricing.DoesNotExist):
pricing.refresh_from_db()
+ @override_settings(TESTING_PRICING=True)
def test_delete_without_pricing(self):
"""Test that we can delete a part which does not have pricing information."""
pricing = self.part.pricing
@@ -388,6 +407,7 @@ def test_delete_without_pricing(self):
with self.assertRaises(part.models.Part.DoesNotExist):
self.part.refresh_from_db()
+ @override_settings(TESTING_PRICING=True)
def test_check_missing_pricing(self):
"""Tests for check_missing_pricing background task.
@@ -411,6 +431,7 @@ def test_check_missing_pricing(self):
# Check that PartPricing objects have been created
self.assertEqual(part.models.PartPricing.objects.count(), 101)
+ @override_settings(TESTING_PRICING=True)
def test_delete_part_with_stock_items(self):
"""Test deleting a part instance with stock items.
@@ -431,7 +452,7 @@ def test_delete_part_with_stock_items(self):
)
# Manually schedule a pricing update (does not happen automatically in testing)
- p.schedule_pricing_update(create=True, test=True)
+ p.schedule_pricing_update(create=True)
# Check that a PartPricing object exists
self.assertTrue(part.models.PartPricing.objects.filter(part=p).exists())
@@ -443,5 +464,84 @@ def test_delete_part_with_stock_items(self):
self.assertFalse(part.models.PartPricing.objects.filter(part=p).exists())
# Try to update pricing (should fail gracefully as the Part has been deleted)
- p.schedule_pricing_update(create=False, test=True)
+ p.schedule_pricing_update(create=False)
self.assertFalse(part.models.PartPricing.objects.filter(part=p).exists())
+
+ @override_settings(TESTING_PRICING=True)
+ def test_multi_level_bom(self):
+ """Test that pricing for multi-level BOMs is calculated correctly."""
+ # Create some parts
+ A1 = part.models.Part.objects.create(
+ name='A1', description='A1', assembly=True, component=True
+ )
+ B1 = part.models.Part.objects.create(
+ name='B1', description='B1', assembly=True, component=True
+ )
+ C1 = part.models.Part.objects.create(
+ name='C1', description='C1', assembly=True, component=True
+ )
+ D1 = part.models.Part.objects.create(
+ name='D1', description='D1', assembly=True, component=True
+ )
+ D2 = part.models.Part.objects.create(
+ name='D2', description='D2', assembly=True, component=True
+ )
+ D3 = part.models.Part.objects.create(
+ name='D3', description='D3', assembly=True, component=True
+ )
+
+ # BOM Items
+ part.models.BomItem.objects.create(part=A1, sub_part=B1, quantity=10)
+ part.models.BomItem.objects.create(part=B1, sub_part=C1, quantity=2)
+ part.models.BomItem.objects.create(part=C1, sub_part=D1, quantity=3)
+ part.models.BomItem.objects.create(part=C1, sub_part=D2, quantity=4)
+ part.models.BomItem.objects.create(part=C1, sub_part=D3, quantity=5)
+
+ # Pricing data (only for low-level D parts)
+ P1 = D1.pricing
+ P1.override_min = 4.50
+ P1.override_max = 5.50
+ P1.save()
+ P1.update_pricing()
+
+ P2 = D2.pricing
+ P2.override_min = 6.50
+ P2.override_max = 7.50
+ P2.save()
+ P2.update_pricing()
+
+ P3 = D3.pricing
+ P3.override_min = 8.50
+ P3.override_max = 9.50
+ P3.save()
+ P3.update_pricing()
+
+ # Simple checks for low-level BOM items
+ self.assertEqual(D1.pricing.overall_min, Money(4.50, 'USD'))
+ self.assertEqual(D1.pricing.overall_max, Money(5.50, 'USD'))
+
+ self.assertEqual(D2.pricing.overall_min, Money(6.50, 'USD'))
+ self.assertEqual(D2.pricing.overall_max, Money(7.50, 'USD'))
+
+ self.assertEqual(D3.pricing.overall_min, Money(8.50, 'USD'))
+ self.assertEqual(D3.pricing.overall_max, Money(9.50, 'USD'))
+
+ # Calculate pricing for "C" level part
+ c_min = 3 * 4.50 + 4 * 6.50 + 5 * 8.50
+ c_max = 3 * 5.50 + 4 * 7.50 + 5 * 9.50
+
+ self.assertEqual(C1.pricing.overall_min, Money(c_min, 'USD'))
+ self.assertEqual(C1.pricing.overall_max, Money(c_max, 'USD'))
+
+ # Calculate pricing for "A" and "B" level parts
+ b_min = 2 * c_min
+ b_max = 2 * c_max
+
+ a_min = 10 * b_min
+ a_max = 10 * b_max
+
+ self.assertEqual(B1.pricing.overall_min, Money(b_min, 'USD'))
+ self.assertEqual(B1.pricing.overall_max, Money(b_max, 'USD'))
+
+ self.assertEqual(A1.pricing.overall_min, Money(a_min, 'USD'))
+ self.assertEqual(A1.pricing.overall_max, Money(a_max, 'USD'))
diff --git a/src/backend/InvenTree/plugin/api.py b/src/backend/InvenTree/plugin/api.py
index 1d3f6763f875..a8a9cb1c48de 100644
--- a/src/backend/InvenTree/plugin/api.py
+++ b/src/backend/InvenTree/plugin/api.py
@@ -11,11 +11,13 @@
from drf_spectacular.utils import extend_schema
from rest_framework import permissions, status
from rest_framework.exceptions import NotFound
+from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
import plugin.serializers as PluginSerializers
from common.api import GlobalSettingsPermissions
+from common.settings import get_global_setting
from InvenTree.api import MetadataView
from InvenTree.filters import SEARCH_ORDER_FILTER
from InvenTree.mixins import (
@@ -414,6 +416,38 @@ def get(self, request):
return Response(result)
+class PluginPanelList(APIView):
+ """API endpoint for listing all available plugin panels."""
+
+ permission_classes = [IsAuthenticated]
+ serializer_class = PluginSerializers.PluginPanelSerializer
+
+ @extend_schema(responses={200: PluginSerializers.PluginPanelSerializer(many=True)})
+ def get(self, request):
+ """Show available plugin panels."""
+ target_model = request.query_params.get('target_model', None)
+ target_id = request.query_params.get('target_id', None)
+
+ panels = []
+
+ if get_global_setting('ENABLE_PLUGINS_INTERFACE'):
+ # Extract all plugins from the registry which provide custom panels
+ for _plugin in registry.with_mixin('ui', active=True):
+ # Allow plugins to fill this data out
+ plugin_panels = _plugin.get_custom_panels(
+ target_model, target_id, request
+ )
+
+ if plugin_panels and type(plugin_panels) is list:
+ for panel in plugin_panels:
+ panel['plugin'] = _plugin.slug
+
+ # TODO: Validate each panel before inserting
+ panels.append(panel)
+
+ return Response(PluginSerializers.PluginPanelSerializer(panels, many=True).data)
+
+
class PluginMetadataView(MetadataView):
"""Metadata API endpoint for the PluginConfig model."""
@@ -428,6 +462,21 @@ class PluginMetadataView(MetadataView):
path(
'plugins/',
include([
+ path(
+ 'ui/',
+ include([
+ path(
+ 'panels/',
+ include([
+ path(
+ '',
+ PluginPanelList.as_view(),
+ name='api-plugin-panel-list',
+ )
+ ]),
+ )
+ ]),
+ ),
# Plugin management
path('reload/', PluginReload.as_view(), name='api-plugin-reload'),
path('install/', PluginInstall.as_view(), name='api-plugin-install'),
diff --git a/src/backend/InvenTree/plugin/base/integration/UserInterfaceMixin.py b/src/backend/InvenTree/plugin/base/integration/UserInterfaceMixin.py
new file mode 100644
index 000000000000..252c18705bcd
--- /dev/null
+++ b/src/backend/InvenTree/plugin/base/integration/UserInterfaceMixin.py
@@ -0,0 +1,76 @@
+"""UserInterfaceMixin class definition.
+
+Allows integration of custom UI elements into the React user interface.
+"""
+
+import logging
+from typing import TypedDict
+
+from rest_framework.request import Request
+
+logger = logging.getLogger('inventree')
+
+
+class CustomPanel(TypedDict):
+ """Type definition for a custom panel.
+
+ Attributes:
+ name: The name of the panel (required, used as a DOM identifier).
+ label: The label of the panel (required, human readable).
+ icon: The icon of the panel (optional, must be a valid icon identifier).
+ content: The content of the panel (optional, raw HTML).
+ source: The source of the panel (optional, path to a JavaScript file).
+ """
+
+ name: str
+ label: str
+ icon: str
+ content: str
+ source: str
+
+
+class UserInterfaceMixin:
+ """Plugin mixin class which handles injection of custom elements into the front-end interface.
+
+ - All content is accessed via the API, as requested by the user interface.
+ - This means that content can be dynamically generated, based on the current state of the system.
+ """
+
+ class MixinMeta:
+ """Metaclass for this plugin mixin."""
+
+ MIXIN_NAME = 'ui'
+
+ def __init__(self):
+ """Register mixin."""
+ super().__init__()
+ self.add_mixin('ui', True, __class__)
+
+ def get_custom_panels(
+ self, instance_type: str, instance_id: int, request: Request
+ ) -> list[CustomPanel]:
+ """Return a list of custom panels to be injected into the UI.
+
+ Args:
+ instance_type: The type of object being viewed (e.g. 'part')
+ instance_id: The ID of the object being viewed (e.g. 123)
+ request: HTTPRequest object (including user information)
+
+ Returns:
+ list: A list of custom panels to be injected into the UI
+
+ - The returned list should contain a dict for each custom panel to be injected into the UI:
+ - The following keys can be specified:
+ {
+ 'name': 'panel_name', # The name of the panel (required, must be unique)
+ 'label': 'Panel Title', # The title of the panel (required, human readable)
+ 'icon': 'icon-name', # Icon name (optional, must be a valid icon identifier)
+ 'content': '
Panel content
', # HTML content to be rendered in the panel (optional)
+ 'source': 'static/plugin/panel.js', # Path to a JavaScript file to be loaded (optional)
+ }
+
+ - Either 'source' or 'content' must be provided
+
+ """
+ # Default implementation returns an empty list
+ return []
diff --git a/src/backend/InvenTree/plugin/base/integration/test_mixins.py b/src/backend/InvenTree/plugin/base/integration/test_mixins.py
index 43bd7b9d1fc1..83caccad30e9 100644
--- a/src/backend/InvenTree/plugin/base/integration/test_mixins.py
+++ b/src/backend/InvenTree/plugin/base/integration/test_mixins.py
@@ -8,7 +8,8 @@
from error_report.models import Error
-from InvenTree.unit_test import InvenTreeTestCase
+from common.models import InvenTreeSetting
+from InvenTree.unit_test import InvenTreeAPITestCase, InvenTreeTestCase
from plugin import InvenTreePlugin
from plugin.base.integration.PanelMixin import PanelMixin
from plugin.helpers import MixinNotImplementedError
@@ -341,7 +342,10 @@ def test_function_errors(self):
class PanelMixinTests(InvenTreeTestCase):
- """Test that the PanelMixin plugin operates correctly."""
+ """Test that the PanelMixin plugin operates correctly.
+
+ TODO: This class will be removed in the future, as the PanelMixin is deprecated.
+ """
fixtures = ['category', 'part', 'location', 'stock']
@@ -475,3 +479,100 @@ class Wrong(PanelMixin, InvenTreePlugin):
plugin = Wrong()
plugin.get_custom_panels('abc', 'abc')
+
+
+class UserInterfaceMixinTests(InvenTreeAPITestCase):
+ """Test the UserInterfaceMixin plugin mixin class."""
+
+ roles = 'all'
+
+ fixtures = ['part', 'category', 'location', 'stock']
+
+ @classmethod
+ def setUpTestData(cls):
+ """Set up the test case."""
+ super().setUpTestData()
+
+ # Ensure that the 'sampleui' plugin is installed and active
+ registry.set_plugin_state('sampleui', True)
+
+ # Ensure that UI plugins are enabled
+ InvenTreeSetting.set_setting('ENABLE_PLUGINS_INTERFACE', True, change_user=None)
+
+ def test_installed(self):
+ """Test that the sample UI plugin is installed and active."""
+ plugin = registry.get_plugin('sampleui')
+ self.assertTrue(plugin.is_active())
+
+ plugins = registry.with_mixin('ui')
+ self.assertGreater(len(plugins), 0)
+
+ def test_panels(self):
+ """Test that the sample UI plugin provides custom panels."""
+ from part.models import Part
+
+ plugin = registry.get_plugin('sampleui')
+
+ _part = Part.objects.first()
+
+ # Ensure that the part is active
+ _part.active = True
+ _part.save()
+
+ url = reverse('api-plugin-panel-list')
+
+ query_data = {'target_model': 'part', 'target_id': _part.pk}
+
+ # Enable *all* plugin settings
+ plugin.set_setting('ENABLE_PART_PANELS', True)
+ plugin.set_setting('ENABLE_PURCHASE_ORDER_PANELS', True)
+ plugin.set_setting('ENABLE_BROKEN_PANELS', True)
+ plugin.set_setting('ENABLE_DYNAMIC_PANEL', True)
+
+ # Request custom panel information for a part instance
+ response = self.get(url, data=query_data)
+
+ # There should be 4 active panels for the part by default
+ self.assertEqual(4, len(response.data))
+
+ _part.active = False
+ _part.save()
+
+ response = self.get(url, data=query_data)
+
+ # As the part is not active, only 3 panels left
+ self.assertEqual(3, len(response.data))
+
+ # Disable the "ENABLE_PART_PANELS" setting, and try again
+ plugin.set_setting('ENABLE_PART_PANELS', False)
+
+ response = self.get(url, data=query_data)
+
+ # There should still be 3 panels
+ self.assertEqual(3, len(response.data))
+
+ # Check for the correct panel names
+ self.assertEqual(response.data[0]['name'], 'sample_panel')
+ self.assertIn('content', response.data[0])
+ self.assertNotIn('source', response.data[0])
+
+ self.assertEqual(response.data[1]['name'], 'broken_panel')
+ self.assertEqual(response.data[1]['source'], '/this/does/not/exist.js')
+ self.assertNotIn('content', response.data[1])
+
+ self.assertEqual(response.data[2]['name'], 'dynamic_panel')
+ self.assertEqual(response.data[2]['source'], '/static/plugin/sample_panel.js')
+ self.assertNotIn('content', response.data[2])
+
+ # Next, disable the global setting for UI integration
+ InvenTreeSetting.set_setting(
+ 'ENABLE_PLUGINS_INTERFACE', False, change_user=None
+ )
+
+ response = self.get(url, data=query_data)
+
+ # There should be no panels available
+ self.assertEqual(0, len(response.data))
+
+ # Set the setting back to True for subsequent tests
+ InvenTreeSetting.set_setting('ENABLE_PLUGINS_INTERFACE', True, change_user=None)
diff --git a/src/backend/InvenTree/plugin/installer.py b/src/backend/InvenTree/plugin/installer.py
index c8b0094ae3eb..4d706aaad238 100644
--- a/src/backend/InvenTree/plugin/installer.py
+++ b/src/backend/InvenTree/plugin/installer.py
@@ -10,6 +10,7 @@
from django.utils.translation import gettext_lazy as _
import plugin.models
+import plugin.staticfiles
from InvenTree.exceptions import log_error
logger = logging.getLogger('inventree')
@@ -119,6 +120,10 @@ def install_plugins_file():
log_error('pip')
return False
+ # Update static files
+ plugin.staticfiles.collect_plugins_static_files()
+ plugin.staticfiles.clear_plugins_static_files()
+
# At this point, the plugins file has been installed
return True
@@ -256,6 +261,9 @@ def install_plugin(url=None, packagename=None, user=None, version=None):
registry.reload_plugins(full_reload=True, force_reload=True, collect=True)
+ # Update static files
+ plugin.staticfiles.collect_plugins_static_files()
+
return ret
@@ -320,6 +328,9 @@ def uninstall_plugin(cfg: plugin.models.PluginConfig, user=None, delete_config=T
# Remove the plugin configuration from the database
cfg.delete()
+ # Remove static files associated with this plugin
+ plugin.staticfiles.clear_plugin_static_files(cfg.key)
+
# Reload the plugin registry
registry.reload_plugins(full_reload=True, force_reload=True, collect=True)
diff --git a/src/backend/InvenTree/plugin/mixins/__init__.py b/src/backend/InvenTree/plugin/mixins/__init__.py
index 1fa960c306b4..1de17d613d57 100644
--- a/src/backend/InvenTree/plugin/mixins/__init__.py
+++ b/src/backend/InvenTree/plugin/mixins/__init__.py
@@ -14,6 +14,7 @@
from plugin.base.integration.ScheduleMixin import ScheduleMixin
from plugin.base.integration.SettingsMixin import SettingsMixin
from plugin.base.integration.UrlsMixin import UrlsMixin
+from plugin.base.integration.UserInterfaceMixin import UserInterfaceMixin
from plugin.base.integration.ValidationMixin import ValidationMixin
from plugin.base.label.mixins import LabelPrintingMixin
from plugin.base.locate.mixins import LocateMixin
@@ -38,5 +39,7 @@
'SingleNotificationMethod',
'SupplierBarcodeMixin',
'UrlsMixin',
+ 'UrlsMixin',
+ 'UserInterfaceMixin',
'ValidationMixin',
]
diff --git a/src/backend/InvenTree/plugin/registry.py b/src/backend/InvenTree/plugin/registry.py
index 4b49eb54333d..65166a79213d 100644
--- a/src/backend/InvenTree/plugin/registry.py
+++ b/src/backend/InvenTree/plugin/registry.py
@@ -742,11 +742,12 @@ def update_plugin_hash(self):
def plugin_settings_keys(self):
"""A list of keys which are used to store plugin settings."""
return [
- 'ENABLE_PLUGINS_URL',
- 'ENABLE_PLUGINS_NAVIGATION',
'ENABLE_PLUGINS_APP',
- 'ENABLE_PLUGINS_SCHEDULE',
'ENABLE_PLUGINS_EVENTS',
+ 'ENABLE_PLUGINS_INTERFACE',
+ 'ENABLE_PLUGINS_NAVIGATION',
+ 'ENABLE_PLUGINS_SCHEDULE',
+ 'ENABLE_PLUGINS_URL',
]
def calculate_plugin_hash(self):
@@ -768,7 +769,7 @@ def calculate_plugin_hash(self):
for k in self.plugin_settings_keys():
try:
- val = get_global_setting(k)
+ val = get_global_setting(k, create=False)
msg = f'{k}-{val}'
data.update(msg.encode())
diff --git a/src/backend/InvenTree/plugin/samples/integration/templates/uidemo/custom_part_panel.html b/src/backend/InvenTree/plugin/samples/integration/templates/uidemo/custom_part_panel.html
new file mode 100644
index 000000000000..72815ed67e88
--- /dev/null
+++ b/src/backend/InvenTree/plugin/samples/integration/templates/uidemo/custom_part_panel.html
@@ -0,0 +1,30 @@
+{% load i18n %}
+
+
Custom Plugin Panel
+
+
+This content has been rendered by a custom plugin, and will be displayed for any "part" instance
+(as long as the plugin is enabled).
+This content has been rendered on the server, using the django templating system.
+
diff --git a/src/backend/InvenTree/plugin/samples/integration/user_interface_sample.py b/src/backend/InvenTree/plugin/samples/integration/user_interface_sample.py
new file mode 100644
index 000000000000..5b0fbf2f77b7
--- /dev/null
+++ b/src/backend/InvenTree/plugin/samples/integration/user_interface_sample.py
@@ -0,0 +1,124 @@
+"""Sample plugin which demonstrates user interface integrations."""
+
+from django.utils.translation import gettext_lazy as _
+
+from part.models import Part
+from plugin import InvenTreePlugin
+from plugin.helpers import render_template, render_text
+from plugin.mixins import SettingsMixin, UserInterfaceMixin
+
+
+class SampleUserInterfacePlugin(SettingsMixin, UserInterfaceMixin, InvenTreePlugin):
+ """A sample plugin which demonstrates user interface integrations."""
+
+ NAME = 'SampleUI'
+ SLUG = 'sampleui'
+ TITLE = 'Sample User Interface Plugin'
+ DESCRIPTION = 'A sample plugin which demonstrates user interface integrations'
+ VERSION = '1.0'
+
+ SETTINGS = {
+ 'ENABLE_PART_PANELS': {
+ 'name': _('Enable Part Panels'),
+ 'description': _('Enable custom panels for Part views'),
+ 'default': True,
+ 'validator': bool,
+ },
+ 'ENABLE_PURCHASE_ORDER_PANELS': {
+ 'name': _('Enable Purchase Order Panels'),
+ 'description': _('Enable custom panels for Purchase Order views'),
+ 'default': False,
+ 'validator': bool,
+ },
+ 'ENABLE_BROKEN_PANELS': {
+ 'name': _('Enable Broken Panels'),
+ 'description': _('Enable broken panels for testing'),
+ 'default': True,
+ 'validator': bool,
+ },
+ 'ENABLE_DYNAMIC_PANEL': {
+ 'name': _('Enable Dynamic Panel'),
+ 'description': _('Enable dynamic panels for testing'),
+ 'default': True,
+ 'validator': bool,
+ },
+ }
+
+ def get_custom_panels(self, instance_type: str, instance_id: int, request):
+ """Return a list of custom panels to be injected into the UI."""
+ panels = []
+
+ # First, add a custom panel which will appear on every type of page
+ # This panel will contain a simple message
+
+ content = render_text(
+ """
+ This is a sample panel which appears on every page.
+ It renders a simple string of HTML content.
+
+
+
Instance Details:
+
+
Instance Type: {{ instance_type }}
+
Instance ID: {{ instance_id }}
+
+ """,
+ context={'instance_type': instance_type, 'instance_id': instance_id},
+ )
+
+ panels.append({
+ 'name': 'sample_panel',
+ 'label': 'Sample Panel',
+ 'content': content,
+ })
+
+ # A broken panel which tries to load a non-existent JS file
+ if self.get_setting('ENABLE_BROKEN_PANElS'):
+ panels.append({
+ 'name': 'broken_panel',
+ 'label': 'Broken Panel',
+ 'source': '/this/does/not/exist.js',
+ })
+
+ # A dynamic panel which will be injected into the UI (loaded from external file)
+ if self.get_setting('ENABLE_DYNAMIC_PANEL'):
+ panels.append({
+ 'name': 'dynamic_panel',
+ 'label': 'Dynamic Part Panel',
+ 'source': '/static/plugin/sample_panel.js',
+ 'icon': 'part',
+ })
+
+ # Next, add a custom panel which will appear on the 'part' page
+ # Note that this content is rendered from a template file,
+ # using the django templating system
+ if self.get_setting('ENABLE_PART_PANELS') and instance_type == 'part':
+ try:
+ part = Part.objects.get(pk=instance_id)
+ except (Part.DoesNotExist, ValueError):
+ part = None
+
+ # Note: This panel will *only* be available if the part is active
+ if part and part.active:
+ content = render_template(
+ self, 'uidemo/custom_part_panel.html', context={'part': part}
+ )
+
+ panels.append({
+ 'name': 'part_panel',
+ 'label': 'Part Panel',
+ 'content': content,
+ })
+
+ # Next, add a custom panel which will appear on the 'purchaseorder' page
+ if (
+ self.get_setting('ENABLE_PURCHASE_ORDER_PANELS')
+ and instance_type == 'purchaseorder'
+ ):
+ panels.append({
+ 'name': 'purchase_order_panel',
+ 'label': 'Purchase Order Panel',
+ 'content': 'This is a custom panel which appears on the Purchase Order view page.',
+ })
+
+ return panels
diff --git a/src/backend/InvenTree/plugin/samples/static/plugin/sample_panel.js b/src/backend/InvenTree/plugin/samples/static/plugin/sample_panel.js
new file mode 100644
index 000000000000..c0a0f5d1f4eb
--- /dev/null
+++ b/src/backend/InvenTree/plugin/samples/static/plugin/sample_panel.js
@@ -0,0 +1,47 @@
+/**
+ * A sample panel plugin for InvenTree.
+ *
+ * This plugin file is dynamically loaded,
+ * as specified in the plugin/samples/integration/user_interface_sample.py
+ *
+ * It provides a simple example of how panels can be dynamically rendered,
+ * as well as dynamically hidden, based on the provided context.
+ */
+
+export function renderPanel(target, context) {
+
+ if (!target) {
+ console.error("No target provided to renderPanel");
+ return;
+ }
+
+ target.innerHTML = `
+
Dynamic Panel Content
+
+
This panel has been dynamically rendered by the plugin system.
+
It can be hidden or displayed based on the provided context.